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("Не удалось. Выберите другое оборудование.")); }
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); }
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)); }