private void UpdateRsnLengths() { try { CurrentStageRSNLength = OtherStagesRSNLength = TotalRSNLength = 0; var rsnIds = new List <Guid>(); if (RsnsView != null) { var currentRsns = RsnsView.Cast <RsnVM>(); rsnIds = currentRsns.Select(rsn => rsn.Id).ToList(); CurrentStageRSNLength = currentRsns.Select(rsn => (!string.IsNullOrEmpty(rsn.CvtText) ? rsn.CvtText.Length : 0) + (!string.IsNullOrEmpty(rsn.FreeText) ? rsn.FreeText.Length : 0)).Sum(); } if (Rsns != null) { var otherRsns = Rsns.Where(r => r.Reaction.Id == ReactionVM.Id && !rsnIds.Contains(r.Id)).ToList(); OtherStagesRSNLength = otherRsns.Select(rsn => (!string.IsNullOrEmpty(rsn.CvtText) ? rsn.CvtText.Length : 0) + (!string.IsNullOrEmpty(rsn.FreeText) ? rsn.FreeText.Length : 0)).Sum(); } TotalRSNLength = CurrentStageRSNLength + OtherStagesRSNLength; Debug.WriteLine(CurrentStageRSNLength + " + " + OtherStagesRSNLength + " = " + TotalRSNLength); } catch (Exception ex) { Log.This(ex); AppErrorBox.ShowErrorMessage("Some error occured in RSNLength.", ex.Message); } }
public bool ReplaceFreeTexts(string TargetText, string ReplaceText, MainVM mainvm, out string ResponceText, List <Guid> rsnIds = null) { if (Rsns != null && Rsns.Any()) { var freetexts = Rsns.Where(rsn => (rsnIds != null ? rsnIds.Contains(rsn.Id) : true) && rsn.FreeText != null && rsn.FreeText.Contains(TargetText)); foreach (var freetext in freetexts) { freetext.FreeText = freetext.FreeText.Replace(TargetText, ReplaceText); } ResponceText = string.Empty; return(true); } ResponceText = string.Empty; return(true); }
private void DoSaveForm(object obj) { try { string outMsg = string.Empty; if (!string.IsNullOrEmpty(FreeText.Trim()) || !string.IsNullOrEmpty(CVT)) { if (!RV.ValidateRsnFreetext(FreeText, ReactionVM, StageVM, RsnLevel, out outMsg)) { AppInfoBox.ShowInfoMessage(outMsg); return; } if (RV.ValidateRsnReactionLevel(ReactionVM, StageVM, RsnLevel, CVT, FreeText, Rsns.ToList(), out outMsg, EditingRsn)) { if (EditingRsn != null) { EditingRsn.CvtText = CVT; EditingRsn.IsIgnorableInDelivery = IsIgnorableInDelivery; EditingRsn.FreeText = FreeText.Trim().TrimEnd('.'); EditingRsn.Stage = RsnLevel == RsnLevel.STAGE ? StageVM : null; UpdateRsnLengths(); } else { var rsn = new RsnVM { }; rsn.CvtText = CVT; rsn.IsIgnorableInDelivery = IsIgnorableInDelivery; rsn.FreeText = FreeText.Trim().TrimEnd('.'); rsn.Reaction = ReactionVM; rsn.Id = Guid.NewGuid(); rsn.Stage = RsnLevel == RsnLevel.STAGE ? StageVM : null; rsn.RSNWindowVM = this; Rsns.Add(rsn); } } else { AppInfoBox.ShowInfoMessage(outMsg); return; } if (Rsns.Where(rsn => rsn.CvtText.SafeEqualsLower(S.ENZYMIC_CVT)).Count() > 0 && Rsns.Where(rsn => rsn.CvtText.SafeEqualsLower(S.BIOTRANSFORMATION_CVT)).Count() == 0) { var enzymicRSN = Rsns.Where(rsn => rsn.CvtText.SafeEqualsLower(S.ENZYMIC_CVT)).FirstOrDefault(); string freeTextToAdd = !string.IsNullOrEmpty(enzymicRSN.FreeText) ? RV.GetStageInfoWithOutFreeText(enzymicRSN.FreeText) : string.Empty; Rsns.Add(new RsnVM { CvtText = S.BIOTRANSFORMATION_CVT, FreeText = RsnLevel == RsnLevel.STAGE ? $"{S.BIOTRANSFORMATION_FREETEXT} {freeTextToAdd}" : string.Empty, IsRXN = true, Stage = enzymicRSN.Stage != null ? enzymicRSN.Stage : null, Reaction = ReactionVM, RSNWindowVM = this, Id = Guid.NewGuid() }); } ClearEditForm.Execute(this); } else { AppInfoBox.ShowInfoMessage("Either CVT or FreeText mandatory to save RSN"); } } catch (Exception ex) { Log.This(ex); AppErrorBox.ShowErrorMessage(ex.Message, ex.ToString()); } }