public void AddTaskSectors(string sectorCustomers, string sectorMarketing, string sectorFinances, string sectorInternal, string sectorManagement, int taskId) { var sectors = new List <string> { sectorCustomers, sectorMarketing, sectorFinances, sectorInternal, sectorManagement }; foreach (var sectorString in sectors) { if (Enum.TryParse <Sector>(sectorString, true, out var sector)) { var taskSector = new TaskSector { TaskId = taskId, Sector = sector }; context.TaskSectors.Add(taskSector); context.SaveChanges(); } } }
public void Create(CreateTaskModel model) { var affectedSectors = new List <TaskSector>(); var task = new Task { Title = model.Title, DueDate = DateTime.ParseExact(model.DueDate, "yyyy-MM-dd", CultureInfo.InvariantCulture), Description = model.Description, IsReported = false }; foreach (Sector value in Enum.GetValues(typeof(Sector))) { var property = model .GetType() .GetProperties() .FirstOrDefault(p => p.Name.ToLower() .Equals(value.ToString().ToLower())); if (property.GetValue(model) != null) { var taskSector = new TaskSector { Task = task, Sector = value }; affectedSectors.Add(taskSector); } } var participants = new List <TaskParticipant>(); foreach (var name in model.Participants.Split(new[] { ", ", "," }, StringSplitOptions.RemoveEmptyEntries)) { var participant = new TaskParticipant { Name = name.Trim(), Task = task }; participants.Add(participant); } task.Participants = participants; task.AffectedSectors = affectedSectors; task.Level = affectedSectors.Count(); this.context.Tasks.Add(task); this.context.SaveChanges(); //this.context.TaskParticipants.AddRange(participants); //this.context.SaveChanges(); //this.context.TaskSectors.AddRange(affectedSectors); }
public IHttpResponse Create(CreateTaskViewModel model) { var task = model.To <Task>(); if (DateTime.TryParse(model.DueDate, out DateTime dueDate)) { task.DueDate = dueDate; } var properties = model.GetType().GetProperties(); var taskSectors = new List <TaskSector>(); foreach (var prop in properties) { var value = prop.GetValue(model); if (value != null) { bool isValidSector = Enum.TryParse(typeof(Models.Enums.Sector), value.ToString(), out object sectorValue); if (isValidSector) { var sector = new Models.Sector { Name = (Models.Enums.Sector)sectorValue }; var taskSector = new TaskSector { Task = task, Sector = sector }; taskSectors.Add(taskSector); } } } task.AffectedSectors.AddRange(taskSectors); Db.Tasks.Add(task); Db.SaveChanges(); return(this.Redirect("/")); }
public IHttpResponse Create(TaskCreateViewModel model) { var task = new Task { Title = model.Title, IsReported = false, Participants = model.Participants, Description = model.Description, }; if (model.DueDate != "") { task.DueDate = DateTime.Parse(model.DueDate); } var sectors = new[] { model.Marketing, model.Management, model.Internal, model.Finances, model.Customers, }; foreach (var sector in sectors) { if (Enum.TryParse(sector, out Sector currentSector)) { var taskSector = new TaskSector() { Task = task, Sector = currentSector, }; task.Sectors.Add(taskSector); this.DbContext.TasksSectors.Add(taskSector); } } this.DbContext.Tasks.Add(task); try { this.DbContext.SaveChanges(); } catch (Exception e) { return(this.ServerError(e.Message)); } return(this.Redirect("/")); }
public Task CreateTask(CreateTaskInputModel model) { var task = new Task() { Title = model.Title, Description = model.Description, DueDate = model.DueDate, IsReported = false, Participants = model.Participants, }; this.db.Tasks.Add(task); var affectedSectors = new List <TaskSector>(); foreach (var modelAffectedSector in model.AffectedSectors) { var taskSector = new TaskSector() { Sector = modelAffectedSector, TaskId = task.Id }; this.db.TaskSectors.Add(taskSector); affectedSectors.Add(taskSector); } try { this.db.SaveChanges(); } catch (Exception e) { Console.WriteLine(e); return(null); } return(task); }
public void CreateTask(string title, string dueDate, string description, string participants, List <string> selectedSectors) { DateTime.TryParse(dueDate, out DateTime date); var task = new Task { Title = title, DueDate = date, Description = description, Participants = participants }; var taskSectors = new List <TaskSector>(); foreach (var selectedSector in selectedSectors) { if (selectedSector != null) { bool isValidSector = Enum.TryParse(typeof(Models.Enums.Sector), selectedSector.ToString(), out object sectorValue); if (isValidSector) { var sector = new Models.Sector { Name = (Models.Enums.Sector)sectorValue }; var taskSector = new TaskSector { Task = task, Sector = sector }; taskSectors.Add(taskSector); } } } task.AffectedSectors.AddRange(taskSectors); context.Tasks.Add(task); context.SaveChanges(); }
private void FillAffectedSectors(IEnumerable <string> affectedSectors, string taskTitle) { var taskId = this.context .Tasks .FirstOrDefault(t => t.Title == taskTitle) .Id; foreach (var affectedSector in affectedSectors) { var taskSector = new TaskSector { Sector = (Sector)Enum.Parse(typeof(Sector), affectedSector, true), TaskId = taskId }; this.context .TasksSectors .Add(taskSector); } this.context.SaveChanges(); }
public IHttpResponse Create(PostTaskViewModel model) { if (model.Description.Length < 3 || model.Participants.Length < 3 || model.Title.Length < 3 || model.DueDate.ToString("d") == "01/01/0001") { return(this.BadRequestErrorWithView("Invalid input fields information!")); } if (this.User.Role != "Admin") { return(this.BadRequestError("404 Page Not Found")); } var tempSectors = new string[] { model.Marketing, model.Customers, model.Internal, model.Finances, model.Management }; tempSectors = tempSectors.Where(s => s != null).ToArray(); var tempParticipats = model.Participants .Split(new string[] { ",", ", " }, StringSplitOptions.RemoveEmptyEntries) .ToArray(); Task task = model.To <Task>(); if (this.DbContext.Tasks.Any(t => t.Title == task.Title)) { return(this.BadRequestErrorWithView("Task already exists!")); } this.DbContext.Add(task); this.DbContext.SaveChanges(); foreach (var participantName in tempParticipats.Select(p => p.Trim())) { if (this.DbContext.Participants.Any(p => p.Name == participantName)) { int existingParticipantId = this.DbContext.Participants.First(p => p.Name == participantName).Id; var taskId = this.DbContext.Tasks.First(t => t.Title == task.Title).Id; TaskParticitpant taskParticitpant = new TaskParticitpant() { TaskId = taskId, ParticipantId = existingParticipantId }; this.DbContext.TaskParticipants.Add(taskParticitpant); this.DbContext.SaveChanges(); } else { Participant participant = new Participant { Name = participantName }; this.DbContext.Participants.Add(participant); this.DbContext.SaveChanges(); if (this.DbContext.TaskParticipants.Any(tp => tp.Task.Title == task.Title && tp.Participant.Name == participant.Name)) { } else { var taskId = this.DbContext.Tasks.First(t => t.Title == task.Title).Id; TaskParticitpant taskParticitpant = new TaskParticitpant() { TaskId = taskId, ParticipantId = participant.Id }; this.DbContext.TaskParticipants.Add(taskParticitpant); this.DbContext.SaveChanges(); } } } foreach (var sector in tempSectors) { Sector newSector = null; if (this.DbContext.Sectors.Any(s => s.SectorType == (SectorType)Enum.Parse(typeof(SectorType), sector))) { newSector = this.DbContext.Sectors.First(s => s.SectorType == (SectorType)Enum.Parse(typeof(SectorType), sector)); } else { newSector = new Sector() { SectorType = (SectorType)Enum.Parse(typeof(SectorType), sector) }; this.DbContext.Add(newSector); this.DbContext.SaveChanges(); } TaskSector taskSector = new TaskSector() { TaskId = task.Id, SectorId = newSector.Id }; this.DbContext.Add(taskSector); this.DbContext.SaveChanges(); } return(this.Redirect($"/Tasks/Details?Id={task.Id}")); }
public IHttpResponse Create(CreateTaskViewModel model) { if (this.User.IsLoggedIn && this.User.Role == "Admin") { var usersNames = model.Participants.Split(new string[] { ", ", "," }, StringSplitOptions.RemoveEmptyEntries); var users = this.Db.Users.Where(x => usersNames.Contains(x.Username)).ToList(); var sectors = new List <Sector>(); if (model.CustomersCheckbox != null) { sectors.Add(Sector.Customers); } if (model.FinancesCheckbox != null) { sectors.Add(Sector.Finances); } if (model.InternalCheckbox != null) { sectors.Add(Sector.Internal); } if (model.ManagementCheckbox != null) { sectors.Add(Sector.Management); } if (model.MarketingCheckbox != null) { sectors.Add(Sector.Marketing); } var task = new Task { Title = model.Title, DueDate = model.DueDate, Description = model.Description, }; var usersTasks = new List <UserTask>(); foreach (var u in users) { var userTask = new UserTask { Task = task, User = u }; usersTasks.Add(userTask); } var tasksSectors = new List <TaskSector>(); foreach (var s in sectors) { var taskSector = new TaskSector { Sector = s, Task = task }; tasksSectors.Add(taskSector); } this.Db.Tasks.Add(task); this.Db.UsersTasks.AddRange(usersTasks); this.Db.TasksSectors.AddRange(tasksSectors); this.Db.SaveChanges(); } return(this.Redirect("/")); }