using System;
using System.Collections.Generic;
using System.ComponentModel.Design;
using System.Xml.Linq;
using TaskTrackerContracts.BindingModels;
using TaskTrackerContracts.ViewModels;
namespace TaskTrackerDatabaseImplement;
///
/// Сущность "Назначение на задачу"
///
public partial class TaskAssigment
{
///
/// Ссылка на сотрудника
///
public int EmployeeId { get; set; }
///
/// Ссылка на задачу
///
public int TaskId { get; set; }
///
/// Роль в задаче
///
public string Role { get; set; } = null!;
public virtual Employee Employee { get; set; } = null!;
public virtual Task Task { get; set; } = null!;
public static TaskAssigment? Create(TaskAssigmentBindingModel model)
{
if (model == null)
{
return null;
}
return new TaskAssigment()
{
Role = model.Role,
EmployeeId = model.EmployeeId,
TaskId = model.TaskId
};
}
public static TaskAssigment Create(TaskAssigmentViewModel model)
{
return new TaskAssigment()
{
Role = model.Role,
EmployeeId = model.EmployeeId,
TaskId = model.TaskId
};
}
public void Update(TaskAssigmentBindingModel model)
{
if (model == null)
{
return;
}
Role = model.Role;
EmployeeId = model.EmployeeId;
TaskId = model.TaskId;
}
public TaskAssigmentViewModel GetViewModel
{
get
{
var context = new TasktrackerContext();
return new()
{
EmployeeId = EmployeeId,
TaskId = TaskId,
Role = Role,
EmployeeName = context.Employees.FirstOrDefault(x => x.Id == EmployeeId)?.Name ?? string.Empty,
TaskName = context.Tasks.FirstOrDefault(x => x.Id == TaskId)?.Name ?? string.Empty
};
}
} }