コード例 #1
0
 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);
     }
 }
コード例 #2
0
 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);
 }
コード例 #3
0
        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());
            }
        }