public ImageModal(string ImageLocalURL, string callingPage, AccidentMediaViewModel photo) { InitializeComponent(); BindingContext = this; theImageToDisplay = ImageLocalURL; currentAccidentMedia = photo; _callingPage = callingPage; Init(); ImageToDisplay.Source = ImageSource.FromFile(theImageToDisplay); }
public async Task then_it_should_return_201_CREATED() { //act var bytes = File.ReadAllBytes("c:\\test\\test.mp3"); var media = new AccidentMediaViewModel { AccidentId = accident.Id, Base64EncodedContent = Convert.ToBase64String(bytes), Filename = "testFileEndToEndTests", MimeType = "mp3", }; result = await client.PostAsJsonAsync("api/accidentmedia", media); //assert result.IsSuccessStatusCode.ShouldBeTrue(); }
/* [Route("api/v1/accidentmedia", Name = "PostAccidentMedia")]*/ public async Task<IHttpActionResult> Post(AccidentMediaViewModel accidentMediaViewModel) { try { if (ModelState.IsValid) { if (accidentMediaViewModel.Base64EncodedContent.IsBase64String()) { if ( await AuthorisePost(accidentMediaViewModel)) { var created = TheModelFactoryV1.Create(await repo.Add(TheModelFactoryV1.Parse(accidentMediaViewModel))); created.Base64EncodedContent = ""; GenerateBaseLog(ApiLogType.Information, LogMessageGenerator.Generate(ApiLogggingBaseMessages.Created, __loggingResourceName), GetType(), GetCaller()); return CreatedAtRoute("AccidentMedia", new { id = created.Id }, created); } GenerateBaseLog(ApiLogType.Error, LogMessageGenerator.Generate(ApiLogggingBaseMessages.UnauthorisedAccess, __loggingResourceName), GetType(), GetCaller()); return ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.Unauthorized, "You are not authorised to access this resource.")); } GenerateBaseLog(ApiLogType.Error, LogMessageGenerator.Generate(ApiLogggingBaseMessages.Base64Error, __loggingResourceName), GetType(), GetCaller()); return BadRequest("Your AccidentMedia POST request was malformed - the content was not BASE64 encoded."); } GenerateBaseLog(ApiLogType.Warning, LogMessageGenerator.Generate(ApiLogggingBaseMessages.BadRequestMessage, __loggingResourceName), GetType(), GetCaller()); return BadRequest(ModelState); } catch (Exception ex) { GenerateBaseLog(ApiLogType.Error, LogMessageGenerator.Generate(ApiLogggingBaseMessages.InternalServerErrorMessage, __loggingResourceName), GetType(), GetCaller(), ex); return InternalServerError(new Exception("An internal server error occurred when trying to update your AccidentMedia. Please contact api support.")); } }
/* [Route("api/v1/accidentmedia/{id}", Name = "GetAccidentMedia")] [Route("api/v1/accidentmedia", Name = "GetAccidentMediaCollectionRoot")]*/ public async Task<IHttpActionResult> Get(int id, bool includeMedia = true) { //todo:implement NO media try { ClaimsPrincipal principal = Request.GetRequestContext().Principal as ClaimsPrincipal; var existingObjectInDb = _db.AccidentMedia.Include(x => x.Accident.Customer).FirstOrDefault(x => x.Id == id); if (existingObjectInDb == null) { GenerateBaseLog(ApiLogType.Warning, LogMessageGenerator.Generate(ApiLogggingBaseMessages.NotFoundMessage, __loggingResourceName), GetType(), GetCaller()); return NotFound(); } if ( await _dataAccessAuthoriser.AuthoriseAccessToClientData(principal, existingObjectInDb.Accident.Customer)) { var model = new AccidentMediaViewModel(); if (includeMedia) { model = TheModelFactoryV1.Create(await repo.Get(id)); } else { } if (model != null) { GenerateBaseLog(ApiLogType.Information, LogMessageGenerator.Generate(ApiLogggingBaseMessages.OKMessage, __loggingResourceName), GetType(), GetCaller()); return Ok(model); } GenerateBaseLog(ApiLogType.Warning, LogMessageGenerator.Generate(ApiLogggingBaseMessages.BadRequestMessage, __loggingResourceName), GetType(), GetCaller()); return BadRequest("Couldn't find your AccidentMedia - please check the id paramater is correct"); } GenerateBaseLog(ApiLogType.Error, LogMessageGenerator.Generate(ApiLogggingBaseMessages.UnauthorisedAccess, __loggingResourceName), GetType(), GetCaller()); return ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.Unauthorized, "You are not authorised to access this resource.")); } catch (Exception) { GenerateBaseLog(ApiLogType.Error, LogMessageGenerator.Generate(ApiLogggingBaseMessages.InternalServerErrorMessage, __loggingResourceName), GetType(), GetCaller()); return InternalServerError(new Exception("An internal server error occurred when trying to find your AccidentMedia. Please contact api support.")); } }