public bool UpdateBulkFreeText(FreeTextBulkDto bulkDto, string userName, string IP) { using (TransactionScope scope = new TransactionScope()) using (var db = new ApplicationDbContext()) { var categorySet = CategorySet(bulkDto.CategoryId); var DeliveryTans = db.DeliveryBatches.Where(d => d.Id == bulkDto.BatchId).Select(d => d.Tans).ToList(); List <Tan> tans = new List <Tan>(); foreach (var tan in DeliveryTans) { tans.AddRange(tan); } var TanIDs = tans.Select(t => t.Id).ToList(); var tanDatas = db.TanData.Where(t => TanIDs.Contains(t.Tan.Id) && categorySet.Contains((int)t.Tan.TanCategory)).ToList(); Dictionary <Guid, string> rsnIdWiseFreeText = bulkDto.Dtos.ToDictionary(d => d.Id, d => d.FreeText); int count = 0; foreach (var tanData in tanDatas) { bool needToUpdate = false; var deserializedTan = JsonConvert.DeserializeObject <Tan>(tanData.Data); foreach (var rsn in deserializedTan.RSNs) { if (rsnIdWiseFreeText.ContainsKey(rsn.Id)) { rsn.FreeText = rsnIdWiseFreeText[rsn.Id]; needToUpdate = true; count++; } } if (needToUpdate) { tanData.Data = JsonConvert.SerializeObject(deserializedTan); tanData.Date = DateTime.Now; tanData.User = userName; tanData.Ip = IP; } } db.SaveChanges(); scope.Complete(); } return(true); }
private async void DoSaveRsns(object obj) { try { LoadingRSNs = true; if (ExtractedRsns != null && MessageBox.Show("Confirm Update . .", "Confirm Save", MessageBoxButton.OKCancel) == MessageBoxResult.OK) { List <FreeTextUpdateDto> dtos = new List <FreeTextUpdateDto>(); foreach (var rsn in ExtractedRsns) { dtos.Add(new FreeTextUpdateDto { Id = rsn.Id, FreeText = rsn.FreeText }); } FreeTextBulkDto bulkDto = new FreeTextBulkDto(); bulkDto.BatchId = SelectedDeliveryBatch.Id; bulkDto.CategoryId = FromCategory.Value; bulkDto.Dtos = dtos; var status = await RestHub.UpdateFreeTextBulk(bulkDto); if (status.HttpCode == System.Net.HttpStatusCode.OK) { ExtractRsns.Execute(this); var result = MessageBox.Show("RSNs Updated Successfully . .", "Status", MessageBoxButton.OKCancel); } else { AppErrorBox.ShowErrorMessage("Can't Update RSNs . .", status.HttpResponse); } } } catch (Exception ex) { Log.This(ex); AppErrorBox.ShowErrorMessage("Error while Updating RSNs", ex.ToString()); } finally { LoadingRSNs = false; } }
public static async Task <RestStatus> UpdateFreeTextBulk(FreeTextBulkDto dto) { try { RestStatus status = new RestStatus(); List <string> tanNums = new List <string>(); if (!string.IsNullOrEmpty(Sessionkey)) { using (var httpClient = new HttpClient()) { httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(BEARER_HEDER, Sessionkey); httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(APPLICATION_JSON)); StringContent stringContent = new StringContent(String.Empty); HttpResponseMessage response = await httpClient.PostAsync(UPDATE_BULK_FREETEXT, new StringContent(JsonConvert.SerializeObject(dto), Encoding.UTF8, "application/json")); using (HttpContent content = response.Content) { string responseText = await content.ReadAsStringAsync(); status.HttpCode = response.StatusCode; status.HttpResponse = responseText; if (status.HttpCode == System.Net.HttpStatusCode.OK) { status.HttpCode = System.Net.HttpStatusCode.OK; } else { status.StatusMessage = responseText; } } } } return(status); } catch (Exception ex) { Log.This(ex); throw; } }
public object UpdateBulkFreeText(FreeTextBulkDto bulkDto) { var id = claimServices.UserId((ClaimsIdentity)User.Identity); return(ShipmentService.UpdateBulkFreeText(bulkDto, id, GetIP())); }