public IActionResult SolveConflict(IList <SolveConflictDTO> dto, MachineriesViewModel dto1)
        {
            bool result = machineryManager.SolveConflict(dto);
            var  model  = machineryManager.SaveOrUpdateMachinery(dto1);

            if (result)
            {
                dbManager.Commit();
                return(View("Machineries", model));
            }
            dbManager.Commit();
            return(BadRequest("Не удалось. Выберите другое оборудование."));
        }
Esempio n. 2
0
        public MachineriesViewModel GetMachineryViewModel(int id)
        {
            var model   = new MachineriesViewModel();
            var machine = id > 0 ?
                          dbManager.GetById <Machinery>(id) :
                          new Machinery();

            model.CopyFrom(machine);
            model.Machineries = dbManager.GetAll <Machinery>().ToList();
            model.Types       = dbManager.GetAll <MachineryType>().ToList();
            model.Title       = id > 0 ? "Редактирование" : "Добавление";
            return(model);
        }
Esempio n. 3
0
        public MachineriesViewModel SaveOrUpdateMachinery(MachineriesViewModel dto)
        {
            string message = "";
            var    machine = dto.Id > 0 ? dbManager.GetById <Machinery>(dto.Id) : new Machinery();

            machine.SetName(dto.Name);
            ChangeType(machine, dto.NewTypeId, out var conflictWorks);
            if (machine.Id == 0)
            {
                message = "Объект сохранён";
                dbManager.AddAsync(machine);
            }

            var model = GetMachineryViewModel(dto.Id);

            if (conflictWorks != null)
            {
                var moss   = conflictWorks.Select(x => x.Parent).Distinct();
                var orders = moss.Select(x => x.Order).Distinct();
                foreach (var order in orders)
                {
                    if (model.Conflict == null)
                    {
                        model.Conflict = new List <ConflictOrders>();
                    }
                    model.Conflict.Add(new ConflictOrders(order));
                }
                foreach (var conflict in model.Conflict)
                {
                    if (conflict.FreeMachineries == null)
                    {
                        conflict.FreeMachineries = new List <Machinery>();
                    }
                    foreach (var m in conflict.OrderVM.MachineriesId)
                    {
                        conflict.FreeMachineries.Add(dbManager.GetById <Machinery>(m));
                    }
                    var machines = orderManager.GetMachinesForOrder(conflict.Order);
                    foreach (var mach in machines)
                    {
                        conflict.FreeMachineries.Add(mach);
                    }
                }
            }
            model.Message   = message;
            model.NewType   = dbManager.GetById <MachineryType>(dto.NewTypeId);
            model.NewTypeId = dto.NewTypeId;
            return(model);
        }
        public IActionResult Index(MachineriesViewModel dto)
        {
            if (!ModelState.IsValid)
            {
                var model1 = machineryManager.GetMachineryViewModel(dto.Id);
                model1.Name   = dto.Name;
                model1.TypeId = dto.TypeId;
                dbManager.Commit();
                return(View("Machineries", model1));
            }


            var model = machineryManager.SaveOrUpdateMachinery(dto);

            dbManager.Commit();
            if (model.Conflict != null)
            {
                return(View("Conflict", model));
            }


            return(View("Machineries", model));
        }