public async Task <IActionResult> Put(int id, [FromBody] RetailerViewModel retailerVm)
        {
            if (retailerVm == null)
            {
                return(BadRequest());
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var dbItem = await _retailerRepository.GetSingleAsync(id);

            if (dbItem == null)
            {
                return(NotFound());
            }
            Mapper.Map(retailerVm, dbItem);
            _retailerRepository.SetPinyin(dbItem);
            dbItem.SetModification(UserName);
            _retailerRepository.Update(dbItem);
            if (!await UnitOfWork.SaveAsync())
            {
                return(StatusCode(500, "保存时出错"));
            }
            var vm = Mapper.Map <RetailerViewModel>(dbItem);

            return(Ok(vm));
        }
Ejemplo n.º 2
0
        public IHttpActionResult UpdateRetailer(int id, [FromBody] Retailer retailerObj)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            if (retailerObj == null)
            {
                return(BadRequest("Retailer is null"));
            }
            if (id != retailerObj.Retailer_Id)
            {
                return(BadRequest());
            }

            //User user = dataRepository.Get(id);
            //if (user == null)
            //{
            //    return NotFound();
            //}

            dataRepository.Update(retailerObj);

            return(Ok(retailerObj));
        }
Ejemplo n.º 3
0
 public void Update(Retailer retailer)
 {
     try
     {
         _repository.Update(retailer);
         _domain.DoCommand(CommandType.Update, retailer);
     }
     catch (Exception ex)
     {
         _domain.DoCommand(CommandType.Exception, ex);
     }
 }
Ejemplo n.º 4
0
        /// <summary>
        /// TODO:
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public async Task <bool> SaveRetailer(RetailerModel model)
        {
            var entity = model?.MapTo <Retailer>();

            if (model.Id < 1)
            {
                await _retailerRepository.Insert(entity);
            }
            else
            {
                await _retailerRepository.Update(entity);
            }

            return(true);
        }
Ejemplo n.º 5
0
        public override async Task <int> HandleCommand(AddCommand request, CancellationToken cancellationToken)
        {
            if (request.Retailer == null || request.Retailer.Address == null || request.Retailer.Contact == null)
            {
                throw new BusinessException("AddWrongInformation");
            }

            if (request.Retailer.ImageData?.Length > Constant.MaxImageLength)
            {
                throw new BusinessException("Image.OutOfLength");
            }
            //With ImageData < 100byte. This is a link image. With Image > 100byte, It can a real imageData.
            if (request.Retailer.ImageData?.Length > 200)
            {
                string type = CommonHelper.GetImageType(System.Text.Encoding.ASCII.GetBytes(request.Retailer.ImageData));
                if (!CommonHelper.IsImageType(type))
                {
                    throw new BusinessException("Image.WrongType");
                }
                string Base64StringData = request.Retailer.ImageData.Substring(request.Retailer.ImageData.IndexOf(",") + 1);
                string fileName         = Guid.NewGuid().ToString().Replace("-", "");
                request.Retailer.ImageURL = CommonHelper.SaveImage($"{GlobalConfiguration.RetailerImagePath}/{DateTime.Now.ToString("yyyyMM")}/", fileName, type, Base64StringData);
            }

            var rs = -1;

            using (var conn = DALHelper.GetConnection())
            {
                conn.Open();
                using (var trans = conn.BeginTransaction())
                {
                    try
                    {
                        retailerRepository.JoinTransaction(conn, trans);
                        locationRepository.JoinTransaction(conn, trans);


                        request.Retailer = CreateBuild(request.Retailer, request.LoginSession);
                        if (!request.Retailer.IsCompany)
                        {
                            request.Retailer.TaxCode = string.Empty;
                        }
                        request.Retailer.Id = await retailerRepository.Add(request.Retailer);

                        request.Retailer.Address.Id         = 0;
                        request.Retailer.Address.ObjectType = LocationOjectType.R.ToString();
                        request.Retailer.Address.ObjectId   = request.Retailer.Id;
                        request.Retailer.Address.IsUsed     = true;
                        request.Retailer.Address            = CreateBuild(request.Retailer.Address, request.LoginSession);
                        var addressId = await locationRepository.AddOrUpdateAddress(request.Retailer.Address);

                        request.Retailer.Contact.Id         = 0;
                        request.Retailer.Contact.ObjectType = LocationOjectType.R.ToString();
                        request.Retailer.Contact.ObjectId   = request.Retailer.Id;
                        request.Retailer.Contact.IsUsed     = true;
                        request.Retailer.Contact            = CreateBuild(request.Retailer.Contact, request.LoginSession);
                        var contactId = await locationRepository.AddOrUpdateContact(request.Retailer.Contact);

                        request.Retailer.AddressId = addressId;
                        request.Retailer.ContactId = contactId;


                        rs = await retailerRepository.Update(request.Retailer);
                    }
                    catch (Exception ex)
                    {
                        LogHelper.GetLogger().Error(ex.Message);
                        return(rs = -1);
                    }
                    finally
                    {
                        if (rs == 0)
                        {
                            trans.Commit();
                        }
                        else
                        {
                            try
                            {
                                trans.Commit();
                            }
                            catch { }
                            CommonHelper.DeleteImage(request.Retailer.ImageURL);
                        }
                    }
                }
            };

            return(rs);
        }
Ejemplo n.º 6
0
        public override async Task <int> HandleCommand(UpdateCommand request, CancellationToken cancellationToken)
        {
            if (request.Retailer == null || request.Retailer.Id == 0 || request.Retailer.Address == null || request.Retailer.Contact == null)
            {
                throw new BusinessException("Retailer.NotExisted");
            }

            var retailer = await retailerQueries.Get(request.Retailer.Id);

            if (retailer == null)
            {
                throw new BusinessException("Retailer.NotExisted");
            }

            string oldImageUrl = request.Retailer.ImageURL;

            if (request.Retailer.ImageData?.Length > Constant.MaxImageLength)
            {
                throw new BusinessException("Image.OutOfLength");
            }
            //With ImageData < 100byte. This is a link image. With Image > 100byte, It can a real imageData.
            if (request.Retailer.ImageData?.Length > 200)
            {
                string type = CommonHelper.GetImageType(System.Text.Encoding.ASCII.GetBytes(request.Retailer.ImageData));
                if (!CommonHelper.IsImageType(type))
                {
                    throw new BusinessException("Image.WrongType");
                }
                string Base64StringData = request.Retailer.ImageData.Substring(request.Retailer.ImageData.IndexOf(",") + 1);
                string fileName         = Guid.NewGuid().ToString().Replace("-", "");
                request.Retailer.ImageURL = CommonHelper.SaveImage($"{GlobalConfiguration.RetailerImagePath}/{DateTime.Now.ToString("yyyyMM")}/", fileName, type, Base64StringData);
            }

            var rs = -1;

            using (var conn = DALHelper.GetConnection())
            {
                conn.Open();
                using (var trans = conn.BeginTransaction())
                {
                    try
                    {
                        retailerRepository.JoinTransaction(conn, trans);
                        locationRepository.JoinTransaction(conn, trans);

                        retailer.Address            = retailer.Address == null ? new Address() : retailer.Address;
                        retailer.Address.Street     = request.Retailer.Address.Street;
                        retailer.Address.CountryId  = request.Retailer.Address.CountryId;
                        retailer.Address.ProvinceId = request.Retailer.Address.ProvinceId;
                        retailer.Address.DistrictId = request.Retailer.Address.DistrictId;
                        retailer.Address.WardId     = request.Retailer.Address.WardId;
                        retailer.Address.Longitude  = request.Retailer.Address.Longitude;
                        retailer.Address.Latitude   = request.Retailer.Address.Latitude;
                        retailer.Address            = UpdateBuild(retailer.Address, request.LoginSession);
                        if (await locationRepository.AddOrUpdateAddress(retailer.Address) == -1)
                        {
                            return(rs = -1);
                        }

                        retailer.Contact        = retailer.Contact == null ? new Contact() : retailer.Contact;
                        retailer.Contact.Name   = request.Retailer.Contact.Name;
                        retailer.Contact.Phone  = request.Retailer.Contact.Phone;
                        retailer.Contact.Email  = request.Retailer.Contact.Email;
                        retailer.Contact.Gender = request.Retailer.Contact.Gender;
                        retailer.Contact        = UpdateBuild(retailer.Contact, request.LoginSession);
                        if (await locationRepository.AddOrUpdateContact(retailer.Contact) == -1)
                        {
                            return(rs = -1);
                        }

                        retailer           = UpdateBuild(retailer, request.LoginSession);
                        retailer.ImageURL  = request.Retailer.ImageURL;
                        retailer.Name      = request.Retailer.Name;
                        retailer.UserId    = request.Retailer.UserId;
                        retailer.IsUsed    = request.Retailer.IsUsed;
                        retailer.IsCompany = request.Retailer.IsCompany;
                        if (!request.Retailer.IsCompany)
                        {
                            retailer.TaxCode = string.Empty;
                        }
                        else
                        {
                            retailer.TaxCode = request.Retailer.TaxCode;
                        }
                        rs = await retailerRepository.Update(retailer);
                    }
                    finally
                    {
                        if (rs == 0)
                        {
                            trans.Commit();
                            if (request.Retailer.ImageData?.Length > 200)
                            {
                                CommonHelper.DeleteImage(oldImageUrl);
                            }
                        }
                        else
                        {
                            try
                            {
                                trans.Commit();
                            }
                            catch { }
                            CommonHelper.DeleteImage(request.Retailer.ImageURL);
                        }
                    }
                }
            }

            return(rs);
        }