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)); }
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)); }
public void Update(Retailer retailer) { try { _repository.Update(retailer); _domain.DoCommand(CommandType.Update, retailer); } catch (Exception ex) { _domain.DoCommand(CommandType.Exception, ex); } }
/// <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); }
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); }
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); }