Example #1
0
        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"));
        }
Example #2
0
        public ServiceResponse GetNewProjectPipelineNote(long projectId)
        {
            ServiceResponse response = new ServiceResponse();
            var             model    = new ProjectPipelineNoteModel()
            {
                ProjectId = projectId,
                ProjectPipelineNoteType = new ProjectPipelineNoteTypeModel()
            };

            response.Model = model;
            return(response);
        }
Example #3
0
        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));
        }
Example #4
0
        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);
                    }
                }
            }
        }
Example #5
0
 public ServiceResponse PostProjectPipelineNote(ProjectPipelineNoteModel model)
 {
     return(projectService.AddProjectPipelineNote(this.CurrentUser, model));
 }