public void Create(RoomImageDTO roomImageDto) { RoomImage roomImage = Mapper.Map <RoomImageDTO, RoomImage>(roomImageDto); _unitOfWork.RoomImages.Create(roomImage); _unitOfWork.Save(); }
public async Task <ActionResult> UploadRoomImage(RoomViewModel roomViewModel) { if (ModelState.IsValid) { // Check if uploadedFiles != null if (roomViewModel.Images != null && roomViewModel.Images.Count() > 0) { var roomImagesUploadModel = new RoomImagesUploadModel() { RoomId = roomViewModel.Id, Images = new List <byte[]>() }; foreach (HttpPostedFileBase file in roomViewModel.Images) { using (var reader = new BinaryReader(file.InputStream)) { roomImagesUploadModel.Images.Add(reader.ReadBytes(file.ContentLength)); } } // Set the Accept header for BSON. Client.DefaultRequestHeaders.Accept.Clear(); Client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/bson")); // POST using the BSON formatter. MediaTypeFormatter bsonFormatter = new BsonMediaTypeFormatter(); try { var response = await Client.PostAsync <RoomImagesUploadModel>("api/Image/Upload/", roomImagesUploadModel, bsonFormatter); if ((int)response.StatusCode == 200) { // Use BSON formatter to deserialize the response content MediaTypeFormatter[] formatters = new MediaTypeFormatter[] { new BsonMediaTypeFormatter() }; ImageUploadResult imageUploadResult = await response.Content.ReadAsAsync <ImageUploadResult>(formatters); for (int i = 0; i < roomViewModel.Images.Count(); i++) { // Create Dto and send to Database RoomImageDTO roomImageDTO = new RoomImageDTO() { Id = imageUploadResult.Id[i], RoomId = roomImagesUploadModel.RoomId }; roomImageService.Create(roomImageDTO); } TempData["ErrorMessage"] = "Images uploaded and a record has been creaded in database"; return(RedirectToAction("Edit", new { id = roomViewModel.Id.ToString() })); } else { TempData["ErrorMessage"] = "Bad responce, Status Code " + (int)response.StatusCode; return(RedirectToAction("Edit", new { id = roomViewModel.Id.ToString() })); } } catch { TempData["ErrorMessage"] = "Can't connect to API"; return(RedirectToAction("Edit", new { id = roomViewModel.Id.ToString() })); } // If response is Ok } else { TempData["ErrorMessage"] = "File is empty"; return(RedirectToAction("Edit", new { id = roomViewModel.Id.ToString() })); } } else { TempData["ErrorMessage"] = "Room model state is not valid"; return(RedirectToAction("Edit", new { id = roomViewModel.Id.ToString() })); } }