コード例 #1
0
        /// <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);
        }
コード例 #2
0
        public async Task <ViewResult <UomModel> > AddOrUpdate(UomModel model)
        {
            var userName = User.Identity.Name;

            return(await _uomService.AddOrUpdate(model, userName));
        }