public async Task <int> CreateAsync(StepModel model) { do { model.Code = CodeGenerator.Generate(); }while (DbSet.Any(d => d.Code.Equals(model.Code))); StepLogic.CreateModel(model); return(await DbContext.SaveChangesAsync()); }
public override async void UpdateModelAsync(int id, MachineModel model) { if (model.MachineEvents != null) { HashSet <int> indicatorsId = MachineEventLogic.MachineEventIds(id); foreach (var itemId in indicatorsId) { MachineEventsModel data = model.MachineEvents.FirstOrDefault(prop => prop.Id.Equals(itemId)); if (data == null) { await MachineEventLogic.DeleteModel(itemId); } else { MachineEventLogic.UpdateModelAsync(itemId, data); } foreach (MachineEventsModel item in model.MachineEvents) { if (item.Id == 0) { MachineEventLogic.CreateModel(item); } } } HashSet <int> StepId = MachineEventLogic.MachineEventIds(id); foreach (var itemId in StepId) { StepModel data = model.Steps.FirstOrDefault(prop => prop.Id.Equals(itemId)); if (data == null) { await StepLogic.DeleteModel(itemId); } else { StepLogic.UpdateModelAsync(itemId, data); } foreach (StepModel item in model.Steps) { if (item.Id == 0) { StepLogic.CreateModel(item); } } } } EntityExtension.FlagForUpdate(model, IdentityService.Username, UserAgent); DbSet.Update(model); }