public void TestProjectAPI_PostProjectPipelineNote_ShouldAddProjectPipelineNote() { SetupProjectAPIForTesting(); ProjectPipelineNoteModel model = new ProjectPipelineNoteModel(); model.CurrentUser = user; model.Note = "Test Project Pipe Line Notes"; model.OwnerId = user.UserId; model.OwnerName = user.FirstName + " " + user.LastName; model.ProjectId = projectId; model.ProjectPipelineNoteTypeName = "Test Project Pipe Line Note Type Name"; model.Title = "Test Project Pipe Line Note Title"; model.ProjectPipelineNoteType = new ProjectPipelineNoteTypeModel(); model.ProjectPipelineNoteType.CurrentUser = user; model.ProjectPipelineNoteType.Description = "Project Pipe Line Note Type Descritpion"; model.ProjectPipelineNoteType.Name = "Project Pipe Line Note Type Name"; model.ProjectPipelineNoteType.ProjectPipelineNoteTypeId = 1; serviceResponse = projectApi.PostProjectPipelineNote(model); Assert.That(serviceResponse.HasError, Is.Not.EqualTo(null)); Assert.That(serviceResponse.Model, Is.Not.EqualTo(null)); model = serviceResponse.Model as ProjectPipelineNoteModel; Assert.That(model.Note, Is.EqualTo("Test Project Pipe Line Notes")); Assert.That(model.ProjectId, Is.EqualTo(projectId)); Assert.That(model.Title, Is.EqualTo("Test Project Pipe Line Note Title")); Assert.That(model.OwnerId, Is.EqualTo(user.UserId)); Assert.That(model.ProjectPipelineNoteType.Name, Is.EqualTo("Project Pipe Line Note Type Name")); Assert.That(model.ProjectPipelineNoteType.Description, Is.EqualTo("Project Pipe Line Note Type Descritpion")); }
public ServiceResponse GetNewProjectPipelineNote(long projectId) { ServiceResponse response = new ServiceResponse(); var model = new ProjectPipelineNoteModel() { ProjectId = projectId, ProjectPipelineNoteType = new ProjectPipelineNoteTypeModel() }; response.Model = model; return(response); }
public void TestProjectAPI_GetProjectPipeLineNotes() { SetupProjectAPIForTesting(); ProjectPipelineNote projectPipeLineNote = this.db.Context.ProjectPipelineNotes .Where(ppn => ppn.OwnerId == user.UserId) .OrderByDescending(ppn => ppn.ProjectId) .FirstOrDefault(); serviceResponse = projectApi.GetProjectPipelineNotes(projectPipeLineNote.ProjectId); Assert.That(serviceResponse.HasError, Is.EqualTo(false)); ProjectPipelineNoteListModel model = serviceResponse.Model as ProjectPipelineNoteListModel; Assert.That(model.Items.Count, Is.GreaterThan(0)); ProjectPipelineNoteModel ppnModel = model.Items.First(); Assert.That(ppnModel.Note, Is.EqualTo(projectPipeLineNote.Note)); }
public void RulesForPipelineStatus(UserSessionModel admin, Project project) { //If Project Status changed from 'Inactive' to 'Open', change pipeline status to 'Opportunity'. if (project.ProjectStatusTypeId == ProjectStatusTypeEnum.Open) { var response = GetProjectModel(admin, project.ProjectId); if (response != null) { var oldmodel = (ProjectModel)response.Model; if (oldmodel.ProjectStatusTypeId == (byte?)ProjectStatusTypeEnum.Inactive) { project.ProjectLeadStatusTypeId = ProjectLeadStatusTypeEnum.Opportunity; } } } //If project Open Status changed to 'Submittals' or 'Rep has PO', change pipeline status to 'Opportunity'. if (project.ProjectOpenStatusTypeId == (byte)ProjectOpenStatusTypeEnum.RepHasPO || project.ProjectOpenStatusTypeId == (byte)ProjectOpenStatusTypeEnum.Submittal) { project.ProjectLeadStatusTypeId = ProjectLeadStatusTypeEnum.Opportunity; } //If project has approved DAR , change pipeline status to 'Opportunity'. //ServiceResponse serviceResponse = GetProjectQuoteDARModel(admin, project.ProjectId); ServiceResponse serviceResponse = GetProjectModel(admin, project.ProjectId); if (serviceResponse != null) { ProjectModel projectModel = (ProjectModel)serviceResponse.Model; if (projectModel.ActiveQuoteSummary.DiscountRequestStatusTypeId == (byte)DiscountRequestStatusTypeEnum.Approved) { project.ProjectLeadStatusTypeId = ProjectLeadStatusTypeEnum.Opportunity; } } //If project status changed to 'Inactive', change pipeline status to 'Disqualified'. if (project.ProjectStatusTypeId == ProjectStatusTypeEnum.Inactive) { project.ProjectLeadStatusTypeId = ProjectLeadStatusTypeEnum.Disqualified; } // Add project note when pipeline status is changed from 'Lead' to 'Opportunity' if (project.ProjectLeadStatusTypeId == ProjectLeadStatusTypeEnum.Opportunity && !string.IsNullOrEmpty(project.ProjectId.ToString())) { // get old ProjectLeadStatusTypeId ServiceResponse response = GetProjectModel(admin, project.ProjectId); if (response != null) { ProjectModel oldmodel = (ProjectModel)response.Model; if (oldmodel.ProjectLeadStatusTypeId == ProjectLeadStatusTypeEnum.Lead) { //Add note var newNoteModel = new ProjectPipelineNoteModel(); newNoteModel.ProjectId = project.ProjectId; newNoteModel.Note = Resources.ResourceUI.ConvertToOpportunity; newNoteModel.ProjectPipelineNoteType = new ProjectPipelineNoteTypeModel() { ProjectPipelineNoteTypeId = 1, Name = @Resources.ResourceUI.ProjectPipelineNoteTypeName1 }; AddProjectPipelineNote(admin, newNoteModel); } } } }
public ServiceResponse PostProjectPipelineNote(ProjectPipelineNoteModel model) { return(projectService.AddProjectPipelineNote(this.CurrentUser, model)); }