public int?Resolve(ScarMarkTattoo scarMarkTattoo) { var BodyMarkId = 0; if (scarMarkTattoo.MasterIndexID != null && scarMarkTattoo.SMT.Code != null && scarMarkTattoo.Location.Description != null) { BodyMarkId = _vsiData.Master_Name_BodyMark.Where(x => x.Master_Name_Link == scarMarkTattoo.MasterIndexID && x.SMT == scarMarkTattoo.SMT.Code & x.Location == scarMarkTattoo.Location.Description).Select(x => x.BodyMarks_Link).FirstOrDefault(); } else if (scarMarkTattoo.MasterIndexID != null && scarMarkTattoo.SMT.Code != null) { BodyMarkId = _vsiData.Master_Name_BodyMark.Where(x => x.Master_Name_Link == scarMarkTattoo.MasterIndexID && x.SMT == scarMarkTattoo.SMT.Code).Select(x => x.BodyMarks_Link).FirstOrDefault(); } return(BodyMarkId); }
/// <summary> /// Process a scarMarkTattoo /// </summary> public long?Process(ScarMarkTattoo scarMarkTattoo, IPerson person) { var link = 0; // Set the MasterIndexLink if (scarMarkTattoo.MasterIndexID == null || scarMarkTattoo.MasterIndexID <= 0) { scarMarkTattoo.SetMasterIndexLink(person.MasterPersonId); } if (scarMarkTattoo.BodyMarkId == null || scarMarkTattoo.BodyMarkId <= 0) { scarMarkTattoo.BodyMarkId = _scarMarkTattooResolver.Resolve(scarMarkTattoo); } link = (scarMarkTattoo.BodyMarkId == null) ? 0 : Convert.ToInt32(scarMarkTattoo.BodyMarkId); //only update records that have changed or new if (BodyMarkChangedOrNew(scarMarkTattoo)) { try { // invoke classic rms procs for master scarMarkTattoo processing. link = new ProcessScarMarkTattoo(scarMarkTattoo).Execute(_vsiData.Database); } catch (Exception e) { #region Handle Failure // TODO: Evaluate how the system should behave when unable to communicate with the classic system. // TODO: Should we set the link to null to indicate the scarMarkTattoo has yet to be processed? // TODO: We may want to only set it to null if it is not already a proper value, so we don't // TODO: lose a valid link just because we cannot communicate with classic. var log = LogProvider.Get <MasterScarMarkTattooProcessor>(); log.Error("Failed to process scarMarkTattoo: " + Environment.NewLine + e); // TODO: What is a "valid" link? >0? Do we need to do Anything? if (!scarMarkTattoo.BodyMarkId.HasValue || scarMarkTattoo.BodyMarkId < 1) { link = 0; } #endregion } } // Set the BodyMarkLink scarMarkTattoo.SetBodyMarkLink(link); // Return the link for quick reference return(scarMarkTattoo.BodyMarkId); }
private bool BodyMarkChangedOrNew(ScarMarkTattoo scarMarkTattoo) { using (var vsiData = new VSI_DATAContext()) { BodyMarks bodyMarks = new Master_Name_BodyMark_Repository(vsiData).BodyMarks.FirstOrDefault(n => n.BodyMarks_Link == scarMarkTattoo.BodyMarkId); if (bodyMarks == null) { return(true); } else { if (IsNotEqual(scarMarkTattoo.SMT.Code, bodyMarks.SMT)) { return(true); } if (IsNotEqual(scarMarkTattoo.TypeSMT.Description, bodyMarks.Type_SMT)) { return(true); } if (scarMarkTattoo.Active.ToUpper() == "TRUE" && bodyMarks.Active != true) { return(true); } if (scarMarkTattoo.Active.ToUpper() == "FALSE" && bodyMarks.Active != false) { return(true); } if (IsNotEqual(scarMarkTattoo.Description, bodyMarks.Description)) { return(true); } if (IsNotEqual(scarMarkTattoo.Location.Description, bodyMarks.Location)) { return(true); } if (IsNotEqual(scarMarkTattoo.NCICSMT.Code, bodyMarks.NCIC_SMT)) { return(true); } } } return(false); }
public new bool CheckEquals(ScarMarkTattoo other) { return(base.CheckEquals(other)); }
public ProcessScarMarkTattoo(ScarMarkTattoo scarMarkTattoo) { _scarMarkTattoo = scarMarkTattoo; }