public OResult <Case> DeserializeFromPath() { try { var @case = JsonConvert.DeserializeObject <Case>(File.ReadAllText(FilePath)); return(OResult <Case> .CreateSucces(@case)); } catch (Exception ex) { Logger.Debug(ex.Message); return(OResult <Case> .CreateFailure(ex)); } }
/// <summary> /// Serializes the contents of Case file to the path represented by this object. /// </summary> /// <param name="case">Case file to serialze to path</param> public OResult <bool> SerializeToPath(Case @case) { try { File.WriteAllText(FilePath, JsonConvert.SerializeObject(@case, Formatting.Indented)); return(OResult <bool> .CreateSucces(true)); } catch (Exception ex) { Logger.Debug(ex.Message); return(OResult <bool> .CreateFailure(ex)); } }
/// <summary> /// Gets the case with the given case number. /// </summary> /// <param name="caseNumber">Case Number</param> /// <returns></returns> public OResult <Case> GetCase(string caseNumber) { var caseFile = GetFilePath(caseNumber); if (caseFile.Exists() == false) { var exception = new FileNotFoundException(caseFile.FilePath); Logger.Debug(exception.Message); return(OResult <Case> .CreateFailure(exception)); } return(caseFile.DeserializeFromPath()); }
/// <summary> /// Adds a case to CaseStorage. /// </summary> /// <param name="caseToAddToStorage">Case to add to CaseStorage</param> /// <returns>Operation Result</returns> public OResult <bool> AddCase(Case caseToAddToStorage) { var caseFile = new CaseFilePath(caseToAddToStorage.CaseNumber, _directoryToSaveFiles); if (caseFile.Exists()) { var errMsg = $"{caseFile.FilePath} already exists. {caseFile.CaseNumber} must be unique."; Logger.Debug(errMsg); return(OResult <bool> .CreateFailure(new Exception(errMsg))); } return(caseFile.SerializeToPath(caseToAddToStorage)); }
public OResult Query(OResult flags, string errormsg, string condition, string file) { var s = String.Format(condition, file); int len = Math.Min(s.Length, Terminal.Cols - 8); var d = new Dialog(len, 8, "Error"); d.ErrorColors(); d.Add(new Label(1, 1, errormsg)); d.Add(new Label(1, 2, String.Format(condition, file.Ellipsize(len - condition.Length)))); OResult result = OResult.Ignore; Button b; if ((flags & OResult.Retry) == OResult.Retry) { b = new Button(0, 0, "Retry", true); b.Clicked += delegate { result = OResult.Retry; d.Running = false; }; d.Add(b); } if ((flags & OResult.Ignore) == OResult.Ignore) { b = new Button(0, 0, "Ignore", true); b.Clicked += delegate { result = OResult.Ignore; d.Running = false; }; d.Add(b); } if ((flags & OResult.Cancel) == OResult.Cancel) { b = new Button(0, 0, "Cancel", true); b.Clicked += delegate { result = OResult.Cancel; d.Running = false; }; d.Add(b); } Terminal.Run(d); return(result); }
public OResult Query(OResult flags, string errormsg, string condition, string file) { var s = String.Format (condition, file); int len = Math.Min (s.Length, Application.Cols-8); var d = new Dialog (len, 8, "Error"); d.ErrorColors (); d.Add (new Label (1, 1, errormsg)); d.Add (new Label (1, 2, String.Format (condition, file.Ellipsize (len-condition.Length)))); OResult result = OResult.Ignore; Button b; if ((flags & OResult.Retry) == OResult.Retry){ b = new Button (0, 0, "Retry", true); b.Clicked += delegate { result = OResult.Retry; d.Running = false; }; d.Add (b); } if ((flags & OResult.Ignore) == OResult.Ignore){ b = new Button (0, 0, "Ignore", true); b.Clicked += delegate { result = OResult.Ignore; d.Running = false; }; d.Add (b); } if ((flags & OResult.Cancel) == OResult.Cancel){ b = new Button (0, 0, "Cancel", true); b.Clicked += delegate { result = OResult.Cancel; d.Running = false; }; d.Add (b); } Application.Run (d); return result; }