public async Task <int> CreateAsync(DailyOperationModel model) { var internalTransaction = DbContext.Database.CurrentTransaction == null; var transaction = !internalTransaction ? DbContext.Database.CurrentTransaction : DbContext.Database.BeginTransaction(); try { int result = 0; do { model.Code = CodeGenerator.Generate(); }while (DbSet.Any(d => d.Code.Equals(model.Code))); this.DailyOperationLogic.CreateModel(model); result = await DbContext.SaveChangesAsync(); DailyOperationLogic.CreateSnapshot(model); result += await DbContext.SaveChangesAsync(); if (internalTransaction) { transaction.Commit(); } return(result); } catch (Exception ex) { if (internalTransaction) { transaction.Rollback(); } throw ex; } }
public async Task <int> UpdateAsync(int id, DailyOperationModel model) { var internalTransaction = DbContext.Database.CurrentTransaction == null; var transaction = !internalTransaction ? DbContext.Database.CurrentTransaction : DbContext.Database.BeginTransaction(); try { int result = 0; await this.DailyOperationLogic.UpdateModelAsync(id, model); result = await DbContext.SaveChangesAsync(); DailyOperationLogic.EditSnapshot(model); result += await DbContext.SaveChangesAsync(); transaction.Commit(); return(result); } catch (Exception ex) { if (internalTransaction) { transaction.Rollback(); } throw ex; } }
public async Task <int> CreateAsync(DailyOperationModel model) { do { model.Code = CodeGenerator.Generate(); }while (DbSet.Any(d => d.Code.Equals(model.Code))); this.DailyOperationLogic.CreateModel(model); return(await DbContext.SaveChangesAsync()); }
public string GetOutputBadDescription(DailyOperationModel outputModel) { List <string> badOutputDescription = new List <string>(); int index = 1; foreach (var model in outputModel.BadOutputReasons) { badOutputDescription.Add(string.Format("{0}. {1} | {2}. {3}", index++, model.MachineName, model.BadOutputReason, model.Action)); } return(string.Join(Environment.NewLine, badOutputDescription)); }
public async Task <int> UpdateAsync(int id, DailyOperationModel model) { await this.DailyOperationLogic.UpdateModelAsync(id, model); return(await DbContext.SaveChangesAsync()); }