Example #1
0
        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();
                }
            }
        }
Example #2
0
        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);
        }
Example #3
0
        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("/"));
        }
Example #4
0
        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("/"));
        }
Example #5
0
        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);
        }
Example #6
0
        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();
        }
Example #7
0
        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();
        }
Example #8
0
        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}"));
        }
Example #9
0
        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("/"));
        }