Exemple #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);
        }
Exemple #2
0
        /// <summary>
        /// Delete uom model
        /// NOTE: soft delete
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public async Task <Operate> DeleteById(int id)
        {
            var result = new Operate();

            try
            {
                using (var scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
                {
                    // var uom = await _uomRepository.GetById(id);
                    var uom = await EntityClient.Uoms.Where(x => x.Id == id && x.ExpireTime == null).FirstOrDefaultAsync();

                    if (uom == null)
                    {
                        result.Status  = -2;
                        result.Message = "Uom does not exist";
                        return(result);
                    }
                    var product = await EntityClient.Products.Where(x => x.UomId == id && x.ExpireTime == null).FirstOrDefaultAsync();

                    // var product = await _productRepository.GetProductByUomId(id);
                    if (product != null)
                    {
                        result.Status  = -3;
                        result.Message = "Uom is used by product";
                        return(result);
                    }

                    // await _uomRepository.Delete(uom);
                    uom.ExpireTime = DateTime.UtcNow;
                    EntityClient.Uoms.AddOrUpdate(uom);
                    await EntityClient.SaveChangesAsync();

                    scope.Complete();
                }
            }
            catch (Exception ex)
            {
                result.Status  = -1;
                result.Message = ex.Message;
                Logger.WriteErrorLog("UomService", "DeleteById", ex);
            }
            return(result);
        }