/// <summary> /// Add or update a uom model /// </summary> /// <param name="model"></param> /// <param name="userName"></param> /// <returns></returns> public async Task <ViewResult <UomModel> > AddOrUpdate(UomModel model, string userName) { var result = new ViewResult <UomModel>(); try { using (var scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled)) { //check duplicated name // var dupUom = await _uomRepository.GetUomByName(model.Name, model.Id); var dupUom = await EntityClient.Uoms.Where(x => x.Name == model.Name && x.Id != model.Id && x.ExpireTime == null).FirstOrDefaultAsync(); if (dupUom != null) { result.Status = -2; result.Message = "Name is already taken"; return(result); } Uom uom; //new uom model if (model.Id == 0) { uom = model.ToUomModel(); uom.CreateTime = DateTime.UtcNow; uom.CreateBy = userName; } else { uom = await EntityClient.Uoms.Where(x => x.Id == model.Id && x.ExpireTime == null).FirstOrDefaultAsync(); if (uom == null) { result.Status = -3; result.Message = "UOM does not exist"; return(result); } uom.EditTime = DateTime.UtcNow; uom.EditBy = userName; uom.Name = model.Name; } // await _uomRepository.AddOrUpdate(uom); EntityClient.Uoms.AddOrUpdate(uom); await EntityClient.SaveChangesAsync(); result.Data = uom.ToUomModel(); scope.Complete(); } } catch (Exception ex) { result.Status = -1; result.Message = ex.Message; Logger.WriteErrorLog("UomService", "AddOrUpdate", ex); } return(result); }
public async Task <ViewResult <UomModel> > AddOrUpdate(UomModel model) { var userName = User.Identity.Name; return(await _uomService.AddOrUpdate(model, userName)); }