/// <summary>
 /// Enum types are equal by primary key
 /// </summary>
 public bool Equals(ProjectUpdateState other)
 {
     if (other == null)
     {
         return(false);
     }
     return(other.ProjectUpdateStateID == ProjectUpdateStateID);
 }
 private static void AssertGetLatestReturnsCorrectly(ProjectUpdateBatch projectUpdateBatch,
                                                     ProjectUpdateHistory expectedProjectUpdateHistory,
                                                     ProjectUpdateState projectUpdateStateExpected)
 {
     Assert.That(projectUpdateBatch.ProjectUpdateHistories.GetLatestProjectUpdateHistory(), Is.EqualTo(expectedProjectUpdateHistory), "Should have gotten the correct latest one");
     AssertGetLatestForTransitionReturnsCorrectly(projectUpdateBatch, expectedProjectUpdateHistory, projectUpdateStateExpected, ProjectUpdateState.Created);
     AssertGetLatestForTransitionReturnsCorrectly(projectUpdateBatch, expectedProjectUpdateHistory, projectUpdateStateExpected, ProjectUpdateState.Submitted);
     AssertGetLatestForTransitionReturnsCorrectly(projectUpdateBatch, expectedProjectUpdateHistory, projectUpdateStateExpected, ProjectUpdateState.Approved);
     AssertGetLatestForTransitionReturnsCorrectly(projectUpdateBatch, expectedProjectUpdateHistory, projectUpdateStateExpected, ProjectUpdateState.Returned);
 }
 /// <summary>
 /// Constructor for building a new object with MinimalConstructor required fields, using objects whenever possible
 /// </summary>
 public ProjectUpdateHistory(ProjectUpdateBatch projectUpdateBatch, ProjectUpdateState projectUpdateState, Person updatePerson, DateTime transitionDate)
     : this()
 {
     // Mark this as a new object by setting primary key with special value
     this.ProjectUpdateHistoryID = ModelObjectHelpers.MakeNextUnsavedPrimaryKeyValue();
     this.ProjectUpdateBatchID = projectUpdateBatch.ProjectUpdateBatchID;
     this.ProjectUpdateBatch = projectUpdateBatch;
     projectUpdateBatch.ProjectUpdateHistories.Add(this);
     this.ProjectUpdateStateID = projectUpdateState.ProjectUpdateStateID;
     this.UpdatePersonID = updatePerson.PersonID;
     this.UpdatePerson = updatePerson;
     updatePerson.ProjectUpdateHistoriesWhereYouAreTheUpdatePerson.Add(this);
     this.TransitionDate = transitionDate;
 }
 private static void AssertGetLatestForTransitionReturnsCorrectly(ProjectUpdateBatch projectUpdateBatch,
                                                                  ProjectUpdateHistory expectedProjectUpdateHistory,
                                                                  ProjectUpdateState projectUpdateStateExpected,
                                                                  ProjectUpdateState projectUpdateStateToCheck)
 {
     if (projectUpdateStateExpected == projectUpdateStateToCheck)
     {
         Assert.That(projectUpdateBatch.ProjectUpdateHistories.GetLatestProjectUpdateHistory(projectUpdateStateToCheck),
                     Is.EqualTo(expectedProjectUpdateHistory),
                     "Should have gotten the latest one in this transition");
     }
     else
     {
         var latestProjectUpdateHistory = projectUpdateBatch.ProjectUpdateHistories.GetLatestProjectUpdateHistory();
         Assert.That(latestProjectUpdateHistory.ProjectUpdateState, Is.Not.EqualTo(projectUpdateStateToCheck), "Should not return a ProjectUpdateHistory in this transition");
     }
 }
Beispiel #5
0
 /// <summary>
 /// Creates a "blank" object of this type and populates primitives with defaults
 /// </summary>
 public static ProjectUpdateBatch CreateNewBlank(Project project, Person lastUpdatePerson, ProjectUpdateState projectUpdateState)
 {
     return(new ProjectUpdateBatch(project, default(DateTime), lastUpdatePerson, projectUpdateState, default(bool)));
 }
Beispiel #6
0
 /// <summary>
 /// Constructor for building a new object with MinimalConstructor required fields, using objects whenever possible
 /// </summary>
 public ProjectUpdateBatch(Project project, DateTime lastUpdateDate, Person lastUpdatePerson, ProjectUpdateState projectUpdateState, bool isPhotosUpdated) : this()
 {
     // Mark this as a new object by setting primary key with special value
     this.ProjectUpdateBatchID = ModelObjectHelpers.MakeNextUnsavedPrimaryKeyValue();
     this.ProjectID            = project.ProjectID;
     this.Project = project;
     project.ProjectUpdateBatches.Add(this);
     this.LastUpdateDate     = lastUpdateDate;
     this.LastUpdatePersonID = lastUpdatePerson.PersonID;
     this.LastUpdatePerson   = lastUpdatePerson;
     lastUpdatePerson.ProjectUpdateBatchesWhereYouAreTheLastUpdatePerson.Add(this);
     this.ProjectUpdateStateID = projectUpdateState.ProjectUpdateStateID;
     this.IsPhotosUpdated      = isPhotosUpdated;
 }
 public static ProjectUpdateHistory GetLatestProjectUpdateHistory(this IEnumerable <ProjectUpdateHistory> projectUpdateHistories, ProjectUpdateState projectUpdateState)
 {
     return(projectUpdateHistories.OrderByDescending(x => x.TransitionDate).FirstOrDefault(x => x.ProjectUpdateState == projectUpdateState));
 }
 /// <summary>
 /// Creates a "blank" object of this type and populates primitives with defaults
 /// </summary>
 public static ProjectUpdateHistory CreateNewBlank(ProjectUpdateBatch projectUpdateBatch, ProjectUpdateState projectUpdateState, Person updatePerson)
 {
     return new ProjectUpdateHistory(projectUpdateBatch, projectUpdateState, updatePerson, default(DateTime));
 }