public async Task <IActionResult> AddOffer([FromForm] OfferBindingModel model) { Result result; if (!ModelState.IsValid) { result = new Result { IsSuccess = false, EntityId = Guid.Empty, Error = "Ошибка в заполненной форме" }; return(BadRequest(JsonConvert.SerializeObject(result, Formatting.None, new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() }))); } result = await _offerService.Create(_mapper.Map <OfferDto>(model), User.Identity.Name !); if (result.IsSuccess) { var offerPhotos = new List <PhotoDto>(); foreach (var photo in model.Photos) { if (photo != null) { byte[] imageData = null; using var binaryReader = new BinaryReader(photo.OpenReadStream()); imageData = binaryReader.ReadBytes((int)photo.Length); offerPhotos.Add(new PhotoDto { Image = imageData, OfferId = result.EntityId }); } } if (offerPhotos.Count > 0) { result = await _photoService.Save(offerPhotos, result.EntityId); } } return(Ok(JsonConvert.SerializeObject(result, Formatting.None, new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() }))); }
public IHttpActionResult CreateNewOffer(OfferBindingModel offerModel) { if (offerModel == null) { return(this.BadRequest("Invalid offer data.")); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var currentUserId = User.Identity.GetUserId(); var currentUser = db.Users.FirstOrDefault(u => u.Id == currentUserId); if (currentUser == null) { return(this.Unauthorized()); } Offer offer = new Offer() { Title = offerModel.Title, Description = offerModel.Description, InitialPrice = offerModel.InitialPrice, ExpirationDateTime = DateTime.Parse(offerModel.ExpirationDateTime), SellerId = currentUserId, DatePublished = DateTime.Now }; db.Offers.Add(offer); db.SaveChanges(); return(CreatedAtRoute( "DefaultApi", new { id = offer.Id }, new { id = offer.Id, Seller = currentUser.UserName, Message = "Offer created." })); }
public static async Task <OfferItem> AddOfferAsync(OfferBindingModel offer) { OfferItem offerItem = null; await Task.Run(async() => { var client = new HttpClient(); MultipartFormDataContent content = null; List <FileResult> fileResults = AddOfferViewModel.uploadedFiles; if (fileResults != null) { content = new MultipartFormDataContent("NkdKd9Yk"); content.Headers.ContentType.MediaType = "multipart/form-data"; foreach (FileResult fileResult in fileResults) { content.Add(new StreamContent(File.OpenRead(fileResult.FullPath)), fileResult.FileName, fileResult.FileName); } } content.Headers.ContentType.MediaType = "multipart/form-data"; var json = JsonConvert.SerializeObject(offer); HttpContent httpContent = new StringContent(json); httpContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json"); content.Add(httpContent); var response = await client.PostAsync(Service.URI + "api/Offers/", content); if (response.IsSuccessStatusCode) { offerItem = JsonConvert.DeserializeObject <OfferItem>(response.Content.ReadAsStringAsync().Result); } }); return(offerItem); }