Никита **********
Junior full stack developer, .Net c# developer
Адрес: г. Чернигов
тел. Показати контакти , Telegram, Viber
email:
************************ (mailto:************************)
Дата рождения: *************** г.
НАВЫКИ
C# Си Шарп, JavaScript, HTML, CSS, Json.
Работа с базами данных MySQL, PostgreSQL Server
Работа с Asp.Net MVC core, Blazor, WinForms
Vue js, Quasar framework.
Базовые знания Entity Framework и LINQ.
Работаю с Microsoft Visual Studio, и Visual Studio Code
Знание английского языка на уровне ниже среднего, продолжаю изучать.
ОПЫТ РАБОТЫ
Написание небольших любительских программ, на основе Asp.Net MVC
core, Blazor, WinForms, Vue js + Quasar framework.
А также тестировочные небольшие программы на с# в консольном
приложении.
На данный момент разрабатываю веб приложение для учета задач, на
основе ASP.Net core MVC.
Скрины готовой части, и примеры кода ниже.
ОБРАЗОВАНИЕ
Школа 10 классов.
Обучаюсь программированию на дому, самостоятельно.
Продолжительность обучения 2 года.
КАЧЕСТВА
Упорный, настойчивый, стремительный, быстро обучаюсь, интересуюсь
всем что связано с компьютерными технологиями и программированием.
Планирую дальше развивать IT карьеру, освоить машинное обучение.
ПРИМЕРЫ РАБОТ
ФРАГМЕНТЫ КОДА
ЗАПРОСЫ В БД С ПОМОЩЬЮ ЛИНКЮ:
public ActionResult getBigTasksCount([FromBody] GetBigTaskModel data)
{
var query = _taskAppContext.BigTasks
.Include(d => d.ParentTask)
.Include(d => d.Users)
.Where(d => !d.parentID.HasValue)
.Where(d => d.Removed == false);
var t = typeof(SearchBigTaskModel);
var props = t.GetProperties();
bool isSearch = false;
foreach (var a in props)
{
if (a.GetValue(data.searchAction) == null ||
a.GetValue(data.searchAction) == "")
{
isSearch = false;
}
else { isSearch = true; break; }
}
if (isSearch)
{
if (data.searchByColumn == "reporter" || data.searchByColumn ==
"author")
{
List BigTaskArrays = new List();
long[] returnBigTaskId;
long[] firstUserBigTaskIds = _taskAppContext.TaskUsers.Where(d
=> d.IsReporter == true && d.BigTask.Removed == false && d.User.ID ==
data.searchAction.Users[0]).Select(f => f.BigTaskId).ToArray();
if (firstUserBigTaskIds != null)
{
BigTaskArrays.Add(firstUserBigTaskIds);
for (int i = 0; i < data.searchAction.Users.Length - 1; i++)
{
if (BigTaskArrays[i] == null)
{
break;
}
else
{
if (data.searchByColumn == "reporter")
{
var Ids = _taskAppContext.TaskUsers.Where(d =>
d.IsReporter == true && d.BigTask.Removed == false && d.User.ID ==
data.searchAction.Users[i + 1] && BigTaskArrays[i].Any(g => g ==
d.BigTaskId)).Select(f => f.BigTaskId).ToArray();
BigTaskArrays.Add(Ids);
}
else
{
var Ids = _taskAppContext.TaskUsers.Where(d =>
d.IsReporter == false && d.BigTask.Removed == false && d.User.ID ==
data.searchAction.Users[i + 1] && BigTaskArrays[i].Any(g => g ==
d.BigTaskId)).Select(f => f.BigTaskId).ToArray();
BigTaskArrays.Add(Ids);
}
}
}
returnBigTaskId = BigTaskArrays.Last();
query = query.Where(d => returnBigTaskId.Any(g => g == d.ID));
}
}
else
{
query = data.searchByColumn switch
{
"status" => query.Where(d =>
d.Status ==
(Database.TaskStatus)Enum.Parse(typeof(Database.TaskStatus),
data.searchAction.StringSelect)),
"name" => query.Where(d =>
d.Name.Contains(data.searchAction.String)),
"importance" => query.Where(d =>
d.Importance ==
(Database.TaskImportance)Enum.Parse(typeof(Database.TaskImportance),
data.searchAction.StringSelect)),
"creationDate" => query.Where(d =>
d.CreationDate == data.searchAction.Date),
"perfomenDate" => query.Where(d =>
d.PerfomenDate == data.searchAction.Date),
"description" => query.Where(d =>
d.Description.Contains(data.searchAction.String))
};
}
}
return query.Count();
}
[HttpPost]
public ActionResult>
getBigTasks([FromBody] GetBigTaskModel data)
{
var query = _taskAppContext.BigTasks
.Include(d => d.ParentTask)
.Include(d => d.Users)
.Where(d => !d.parentID.HasValue)
.Where(d => d.Removed == false);
var t = typeof(SearchBigTaskModel);
var props = t.GetProperties();
bool isSearch = false;
foreach (var a in props)
{
if (a.GetValue(data.searchAction) == null ||
a.GetValue(data.searchAction) == "")
{
isSearch = false;
}
else { isSearch = true; break; }
}
query = data.sortByColumn switch
{
"status" => data.descending
? query.OrderByDescending(d => d.Status)
: query.OrderBy(d => d.Status),
"name" => data.descending
? query.OrderByDescending(d => d.Name)
: query.OrderBy(d => d.Name),
"importance" => data.descending
? query.OrderByDescending(d => d.Importance)
: query.OrderBy(d => d.Importance),
"creationDate" => data.descending
? query.OrderByDescending(d => d.CreationDate)
: query.OrderBy(d => d.CreationDate),
"perfomenDate" => data.descending
? query.OrderByDescending(d => d.PerfomenDate)
: query.OrderBy(d => d.PerfomenDate),
_ => query.OrderBy(d => d.ID)
};
if (isSearch)
{
if (data.searchByColumn == "reporter" || data.searchByColumn ==
"author")
{
List BigTaskArrays = new List();
long[] returnBigTaskId;
long[] firstUserBigTaskIds = _taskAppContext.TaskUsers.Where(d
=> d.IsReporter == true && d.BigTask.Removed == false && d.User.ID ==
data.searchAction.Users[0]).Select(f => f.BigTaskId).ToArray();
if (firstUserBigTaskIds != null)
{
BigTaskArrays.Add(firstUserBigTaskIds);
for (int i = 0; i < data.searchAction.Users.Length - 1; i++)
{
if (BigTaskArrays[i] == null)
{
break;
}
else
{
if (data.searchByColumn == "reporter")
{
var Ids = _taskAppContext.TaskUsers.Where(d =>
d.IsReporter == true && d.BigTask.Removed == false && d.User.ID ==
data.searchAction.Users[i + 1] && BigTaskArrays[i].Any(g => g ==
d.BigTaskId)).Select(f => f.BigTaskId).ToArray();
BigTaskArrays.Add(Ids);
}
else
{
var Ids = _taskAppContext.TaskUsers.Where(d =>
d.IsReporter == false && d.BigTask.Removed == false && d.User.ID ==
data.searchAction.Users[i + 1] && BigTaskArrays[i].Any(g => g ==
d.BigTaskId)).Select(f => f.BigTaskId).ToArray();
BigTaskArrays.Add(Ids);
}
}
}
returnBigTaskId = BigTaskArrays.Last();
query = query.Where(d => returnBigTaskId.Any(g => g == d.ID));
}
}
else
{
query = data.searchByColumn switch
{
"status" => query.Where(d =>
d.Status ==
(Database.TaskStatus)Enum.Parse(typeof(Database.TaskStatus),
data.searchAction.StringSelect)),
"name" => query.Where(d =>
d.Name.Contains(data.searchAction.String)),
"importance" => query.Where(d =>
d.Importance ==
(Database.TaskImportance)Enum.Parse(typeof(Database.TaskImportance),
data.searchAction.StringSelect)),
"creationDate" => query.Where(d =>
d.CreationDate == data.searchAction.Date),
"perfomenDate" => query.Where(d =>
d.PerfomenDate == data.searchAction.Date),
"description" => query.Where(d =>
d.Description.Contains(data.searchAction.String))
};
}
}
if (data.numOfDispLines != 0 && data.numOfDispLines != null)
{
int page = data.pageShow.HasValue ? data.pageShow.Value : 0;
query = query.Skip(page * data.numOfDispLines);
//var AuthorNames =
_taskAppContext.TaskUsers.Include(d=>d.User).Where
var q = query
.Take(data.numOfDispLines)
.Select(d => new ResponseBigTaskModel()
{
ID = d.ID,
AuthorNames = d.Users.Where(u => u.IsReporter == false &&
!u.Removed).Select(u => u.User.Name).ToList(),
ReporterNames = d.Users.Where(u => u.IsReporter == true &&
!u.Removed).Select(u => u.User.Name).ToList(),
Name = d.Name,
CreationDate = d.CreationDate,
PerfomenDate = d.PerfomenDate,
Importance = d.Importance,
Status = d.Status,
Description = d.Description
})
.ToList();
return q;
}
else
{
var q = query
.Select(d => new ResponseBigTaskModel()
{
ID = d.ID,
AuthorNames = d.Users.Where(u => u.IsReporter == false &&
!u.Removed).Select(u => u.User.Name).ToList(),
ReporterNames = d.Users.Where(u => u.IsReporter == true &&
!u.Removed).Select(u => u.User.Name).ToList(),
Name = d.Name,
CreationDate = d.CreationDate,
PerfomenDate = d.PerfomenDate,
Importance = d.Importance,
Status = d.Status,
Description = d.Description
})
.ToList();
return q;
}
}