Exemple #1
0
        public ActionResult Generate(List <AppointDTO> model)
        {
            int task_id = 0;

            if (model.Count != 0)
            {
                task_id = int.Parse(model.First().task_id);

                foreach (var appointment in model)
                {
                    /*
                     * 1. поищем в бд такую запись, который имеет предоставленный таск айди и ресурс айди
                     * 2. если поиск дал результат, и флажок отмечен (status==true): то обновляем даты аппойнтментов найденной записи
                     * 3. если поиск дал результат, но флажок не отмечен: то удаляем найденную запись в бд
                     * 4. если поиск не дал результатов, но флажок отмечен : добавляем новую запись в бд
                     * 5. если поиск не дал результатов, и флажок не отмечен : ничего не делаем
                     * 6. коммитим все изменения в базу
                     */

                    var resource_id = int.Parse(appointment.resource_id);

                    //1
                    var found = unitOfWork.ResInTasksRepository.Get(x => x.resource_id == resource_id && x.task_id == task_id).SingleOrDefault();

                    if (appointment.status.ToLower().Equals("false"))
                    {
                        if (found != null)  //3
                        {
                            unitOfWork.ResInTasksRepository.Delete(found);
                        }
                    }
                    else
                    {
                        if (found != null) //2
                        {
                            found.date_from = DateTime.ParseExact(appointment.start_date, "yyyy-MM-dd", CultureInfo.InvariantCulture);
                            found.date_to   = DateTime.ParseExact(appointment.end_date, "yyyy-MM-dd", CultureInfo.InvariantCulture);
                            unitOfWork.ResInTasksRepository.Update(found);
                        }
                        else //4
                        {
                            unitOfWork.ResInTasksRepository.Insert(AppointMapper.MapViewModelToItem(appointment));
                        }
                    }
                }

                unitOfWork.Save(); //6
            }

            return(Json(Url.Action("Generated", "Tasks", new { id = task_id })));
            //@"TODO: return url.action('Generated', 'Tasks', task_id) | and use this url in 'window.href.location' part of the ajax.success in the view");
        }
Exemple #2
0
        public ActionResult Appoint(int id)
        {
            AppointViewModel model = new AppointViewModel();

            model.Task = TaskMapper.MapItemToViewModel(unitOfWork.TasksRepository.GetByID(id));

            var rits = unitOfWork.ResInTasksRepository.Get(x => x.task_id == id, includeProperties: "Resource,Task");

            if (rits != null)
            {
                model.Resources = AppointMapper.MapItemsToViewModel(rits);
            }
            else
            {
                model.Resources = new List <ResourceInTaskVM>();
            }

            model.AllResources = ResourceMapper.MapItemToViewModel(unitOfWork.ResourcesRepository.Get()
                                                                   .Where(r => !model.Resources.Any(vm => vm.Resource.Id == r.resource_id)));

            return(PartialView("_Appoint", model));
        }
Exemple #3
0
        public ActionResult Appointments()
        {
            //var model = AppointMapper.MapAllItemsToViewModel(
            //    unitOfWork.ResInTasksRepository.Get(includeProperties: "Resource,Task"),
            //    unitOfWork.ResourcesRepository.Get());

            var model = new List <AppointViewModel>();
            var rits  = unitOfWork.ResInTasksRepository.Get(includeProperties: "Resource,Task");

            foreach (var item in rits.GroupBy(rit => rit.task_id).Select(g => g.First()))
            {
                IEnumerable <ResourceInTaskVM> resources = rits.Where(rit => rit.task_id == item.task_id).Select(x => AppointMapper.MapItemToViewModel(x)).ToList();
                model.Add(new AppointViewModel
                {
                    Task         = TaskMapper.MapItemToViewModel(item.Task),
                    Resources    = resources.ToList(),
                    AllResources = ResourceMapper.MapItemToViewModel(unitOfWork.ResourcesRepository.Get().Where(r => !resources.Any(vm => vm.Resource.Id == r.resource_id)))
                });
            }

            return(View(model));
        }