public async Task <ObservationUpdateResponse> ObservationUpdate(string email, int observationId, int indicatorId, int siteId, DateTime begin, DateTime end) { var request = new ObservationUpdateRequest { user_email = email, observation_id = observationId, indicator_id = indicatorId, site_id = siteId, begin_date = begin, end_date = end }; var response = await WebServiceClientBase.Post <ObservationUpdateRequest, ObservationUpdateResponse>(Constants.OperationUpdateUri, request, true); return(response); }
// public static async Task <ObservationUpdateResponse> PostObservation(string requestURI, ObservationUpdateRequest requestModel, bool addAuthHeader = false) { try //TODO: let caller handle exceptions? { if (addAuthHeader) //add header { AddAuthHeader(); } var obs = JsonConvert.SerializeObject(requestModel); //var response = await GfscClient.PostAsync(requestURI, json).ConfigureAwait(false); var response = await GfscClient.PostAsync(requestURI, new StringContent(obs, Encoding.UTF8, "application/json")); if (addAuthHeader) //remove header { RemoveAuthHeader(); } if (response.IsSuccessStatusCode) { var json = await response.Content.ReadAsStringAsync().ConfigureAwait(false); if (!string.IsNullOrWhiteSpace(json)) { var returnT = JsonConvert.DeserializeObject <List <ObservationUpdateResponse> >(json); return(returnT[0]); } } else { return(new ObservationUpdateResponse { ErrorStatusCode = (int)response.StatusCode }); } } catch (Exception e) { if (addAuthHeader) //remove header { RemoveAuthHeader(); } return(new ObservationUpdateResponse()); } return(default(ObservationUpdateResponse)); }
public async Task <ObservationSaveResponse> ObservationSave(string email, Observation observation) { //need to call all the saves ObservationSaveResponse returnValue = new ObservationSaveResponse(); //observation var request = new ObservationUpdateRequest { user_email = email, observation_id = observation.Observation_id, indicator_id = observation.Indicator_id, site_id = observation.Site_id, begin_date = (System.DateTime)observation.Begin_Date, end_date = (System.DateTime)observation.End_Date }; var response = await WebServiceClientBase.Post <ObservationUpdateRequest, ObservationUpdateResponse>(Constants.OperationUpdateUri, request, true); if (response != null) { observation.Observation_id = response.observation_id; observation.ModifiedLocally = false; //save observation entry foreach (ObservationEntry entry in observation.ObservationEntries) { var entryRes = await ObservationEntryUpdate(entry.ObservationEntryId == null? 0 : (int)entry.ObservationEntryId, observation.Observation_id, entry.Indicator_Age_Range_Id == null? 0 : (int)entry.Indicator_Age_Range_Id, entry.Indicator_Gender, entry.Numerator == null? 0 : (int)entry.Numerator, entry.Denominator == null? 0 : (int)entry.Denominator, entry.Count == null? 0 : (int)entry.Count, entry.Rate == null? 0 : (int)entry.Rate, entry.Yes_No == null?false : (bool)entry.Yes_No, email); if (entryRes != null) { entry.ObservationEntryId = entryRes.observation_entry_id; entry.ModifiedLocally = false; } } //save observation change foreach (ObservationChange change in observation.Changes) { var changeRes = await ObservationChangeUpdate(change.Description, observation.Observation_id, change.ChangeId, email); if (changeRes != null) { change.ChangeId = changeRes.observation_change_id; change.ModifiedLocally = false; } } //save observation comment foreach (ObservationComment comment in observation.Comments) { var commentRes = await ObservationCommentUpdate(comment.Comment, observation.Observation_id, comment.CommentId, email); if (commentRes != null) { comment.CommentId = commentRes.observation_comment_id; comment.ModifiedLocally = false; } } //save observation attachment foreach (ObservationAttachment attach in observation.Attachments) { //byte[] file = new byte[attach.Bytes.Length]; //int result = fileBytes.InputStream.Read(file, 0, fileBytes.ContentLength); //attachment.attachment = file; //attachment.approved = false; //attachment.createdby_userid = CurrentUser.Id; //attachment.created_date = DateTime.Now; //db.t_observation_attachment.Add(attachment); //db.SaveChanges(); var buffer = attach.Bytes; if (buffer != null) { string s = System.Text.Encoding.UTF8.GetString(buffer, 0, buffer.Length); var attachRes = await ObservationAttachmentUpdate(attach.Bytes, s, attach.Attachment_File_Name, observation.Observation_id, attach.AttachmentId, email); if (attachRes != null) { attach.AttachmentId = attachRes.observation_attachment_id; attach.ModifiedLocally = false; } } } } else { returnValue.ErrorStatusCode = 500; } returnValue.observation = observation; return(returnValue); }