private bool ValidateFileUpload(FileUpload[] fileUploads) { var isInvalidFiles = false; foreach (var file in fileUploads) { var validate = CloudinaryAPI.ValidateFileUpload(file); if (validate >= 0) { var errorsLibrary = CloudinaryAPI.FileUploadErrorsDictionary; ModelState.AddModelError(errorsLibrary.Keys.ElementAt(validate), errorsLibrary[errorsLibrary.Keys.ElementAt(validate)]); isInvalidFiles = true; } } return(isInvalidFiles); }
public async Task <IHttpActionResult> CreatePersonInPersonGroup([FromUri] string studentId) { var provider = await Request.Content.ReadAsMultipartAsync(); var fileUploads = new List <FileUpload>(); foreach (var content in provider.Contents) { if (content.Headers != null) { fileUploads.Add(new FileUpload { FileStream = await content.ReadAsStreamAsync(), FileName = content.Headers.ContentDisposition.FileName }); } } var isInvalidFile = ValidateFileUpload(fileUploads.ToArray()); if (isInvalidFile) { return(BadRequest(ModelState)); } var uploadResults = (await CloudinaryAPI.UploadImagesIncludedFaceToCloudinary(fileUploads)).ToArray(); var identifiedStudent = await _unitOfWork.IdentityStudents.GetIdentityStudent(FaceAPI.PersonGroupId, studentId); if (identifiedStudent != null) { await AddFacesPersonIntoPersonGroup(identifiedStudent, uploadResults); } else { await AddPersonIntoPersonGroup(studentId, uploadResults); } return(Ok()); }