示例#1
0
 /// <summary>
 /// Constructor for building a new simple object with the POCO class
 /// </summary>
 public ProjectContactSimple(ProjectContact projectContact)
     : this()
 {
     ContactID   = projectContact.ContactID;
     ContactName = projectContact.Contact.GetFullNameFirstLast();
     ContactRelationshipTypeID = projectContact.ContactRelationshipTypeID;
 }
示例#2
0
        public async Task <IActionResult> UpdateProject(int id, ProjectForUpdateDto projectForUpdateDto)
        {
            Project project = await _projectService.GetProject(id);

            _mapper.Map(projectForUpdateDto, project);

            if (projectForUpdateDto.ContactList.Count() > 0)
            {
                List <ProjectContact> Contacts = new List <ProjectContact>();
                foreach (int contactId in projectForUpdateDto.ContactList)
                {
                    ProjectContact pc = new ProjectContact {
                        ContactId = contactId
                    };
                    Contacts.Add(pc);
                }
                project.Contacts = Contacts;
            }

            if (await _projectService.Update(project))
            {
                var projectView = _mapper.Map <ProjectForViewDto>(project);
                return(Ok(projectView));
            }

            throw new Exception($"Updating project {id} failed on save");
        }
        public void SaveProjectContactTest()
        {
            // The Project Number
            string projectNumber = "12345.00";

            // Try to get the Project
            Project project = this.repository.FindBy(projectNumber);

            // Get the old count of Project Contacts
            int oldCount = project.Contacts.Count;

            // Get a Contact
            IContactRepository contactRepository =
                RepositoryFactory.GetRepository <IContactRepository, Contact>();
            object  contactKey = "cae9eb86-5a86-4965-9744-18326fd56a3b";
            Contact contact    = contactRepository.FindBy(contactKey);

            // Create a Project Contact
            ProjectContact projectContact = new ProjectContact(project,
                                                               Guid.NewGuid(), contact);

            // Save the Project Contact
            this.repository.SaveContact(projectContact);

            // Commit the transaction
            this.unitOfWork.Commit();

            // Reload the the Project
            Project updatedProject = this.repository.FindBy("12345.00");

            // Verify that there is a new ProjectContact now
            Assert.AreEqual(oldCount, updatedProject.Contacts.Count - 1);
        }
示例#4
0
 public RoutingItem(object key, Discipline discipline,
                    int routingOrder, ProjectContact recipient,
                    DateTime dateSent)
     : this(key, discipline,
            routingOrder, recipient, dateSent, null)
 {
 }
        public void SaveProjectContactTest()
        {
            // Try to get the Project
            Project project = this.repository.FindAll()[0];

            // Get the old count of Project Contacts
            int oldCount = project.Contacts.Count;

            // Get a Contact
            IContactRepository contactRepository =
                RepositoryFactory.GetRepository <IContactRepository, Contact>();
            Contact contact = contactRepository.FindAll()[0];

            // Create a Project Contact
            ProjectContact projectContact = new ProjectContact(project,
                                                               Guid.NewGuid(), contact);

            // Save the Project Contact
            this.repository.SaveContact(projectContact);

            // Commit the transaction
            this.unitOfWork.Commit();

            // Reload the the Project
            Project updatedProject = this.repository.FindBy(project.Key);

            // Verify that there is a new ProjectContact now
            Assert.AreEqual(oldCount, updatedProject.Contacts.Count - 1);
        }
示例#6
0
        internal static CopyTo BuildCopyTo(object projectKey, IDataReader reader)
        {
            ProjectContact contact = ProjectService.GetProjectContact(projectKey,
                                                                      reader[FieldNames.ProjectContactId]);

            return(new CopyTo(contact, reader[FieldNames.Notes].ToString()));
        }
 public RequestForInformation(object key, object projectKey,
                              int number) : base(key, projectKey)
 {
     this.number                      = number;
     this.from                        = null;
     this.dateReceived                = null;
     this.dateRequestedBy             = null;
     this.contractor                  = null;
     this.specSection                 = null;
     this.question                    = string.Empty;
     this.description                 = string.Empty;
     this.contractorProposedSolution  = string.Empty;
     this.change                      = false;
     this.cause                       = 0;
     this.origin                      = 0;
     this.status                      = null;
     this.dateToField                 = null;
     this.shortAnswer                 = string.Empty;
     this.longAnswer                  = string.Empty;
     this.remarks                     = string.Empty;
     this.numberSpecification         = new NumberSpecification <RequestForInformation>();
     this.dateToFieldSpecification    = new RequestForInformationDateSpecification();
     this.questionAnswerSpecification = new RequestForInformationQuestionAnswerSpecification();
     this.ValidateInitialization();
 }
示例#8
0
 public ProposalRequest(object key, object projectKey,
                        int number) : base(key, projectKey)
 {
     this.number    = number;
     this.to        = null;
     this.from      = null;
     this.issueDate = null;
     this.GetExpectedContractorReturnDays();
     this.expectedContractorReturnDate =
         this.TransmittalDate.AddDays(this.expectedContractorReturnDays);
     this.contractor          = null;
     this.description         = string.Empty;
     this.attachment          = string.Empty;
     this.reason              = string.Empty;
     this.initiator           = string.Empty;
     this.cause               = 0;
     this.origin              = 0;
     this.remarks             = string.Empty;
     this.numberSpecification =
         new NumberSpecification <ProposalRequest>();
     this.descriptionSpecification =
         new DescriptionSpecification <ProposalRequest>();
     this.ValidateInitialization();
     this.brokenRuleMessages = new ProposalRequestRuleMessages();
 }
示例#9
0
 public ConstructionChangeDirective(object key, object projectKey,
                                    int number) : base(key, projectKey)
 {
     this.number                  = number;
     this.to                      = null;
     this.from                    = null;
     this.issueDate               = null;
     this.contractor              = null;
     this.description             = string.Empty;
     this.attachment              = string.Empty;
     this.reason                  = string.Empty;
     this.initiator               = string.Empty;
     this.cause                   = 0;
     this.origin                  = 0;
     this.remarks                 = string.Empty;
     this.changeType              = null;
     this.priceChangeDirection    = ChangeDirection.Unchanged;
     this.amountChanged           = 0;
     this.timeChangeDirection     = ChangeDirection.Unchanged;
     this.timeChanged             = 0;
     this.ownerSignatureDate      = null;
     this.architectSignatureDate  = null;
     this.contractorSignatureDate = null;
     this.numberSpecification     =
         new NumberSpecification <ConstructionChangeDirective>();
     this.descriptionSpecification =
         new DescriptionSpecification <ConstructionChangeDirective>();
     this.changeOrderKey = null;
     this.ValidateInitialization();
     this.brokenRuleMessages =
         new ConstructionChangeDirectiveRuleMessages();
 }
示例#10
0
        private void NewCommandHandler(object sender, EventArgs e)
        {
            ProjectContact contact = new ProjectContact(UserSession.CurrentProject, null, new Contact(null, "{First Name}", "{Last Name}"));

            this.contactList.Add(contact);
            this.contacts.Refresh();
            this.contacts.MoveCurrentToLast();
        }
示例#11
0
 public ProjectContactViewModel(IView view) : base(view)
 {
     contactList      = UserSession.CurrentProject.Contacts;
     contacts         = new CollectionView(contactList);
     currentContact   = null;
     companies        = new CollectionView(CompanyService.GetAllCompanies());
     this.saveCommand = new DelegateCommand(SaveCommandHandler);
     this.newCommand  = new DelegateCommand(NewCommandHandler);
 }
示例#12
0
        internal static ProjectContact BuildProjectContact(Project project, IDataReader reader)
        {
            ProjectContact contact = new ProjectContact(project,
                                                        DataHelper.GetGuid(reader[FieldNames.ProjectContactId]),
                                                        ContactService.GetContact(reader[FieldNames.ContactId]));

            contact.OnFinalDistributionList = DataHelper.GetBoolean(reader[FieldNames.OnFinalDistributionList]);
            return(contact);
        }
示例#13
0
 public RoutingItem(object key, Discipline discipline,
                    int routingOrder, ProjectContact recipient,
                    DateTime dateSent, DateTime?dateReturned)
 {
     this.key          = key;
     this.discipline   = discipline;
     this.routingOrder = routingOrder;
     this.recipient    = recipient;
     this.dateSent     = dateSent;
     this.DateReturned = dateReturned;
 }
        protected void PersistUpdateItem(ProjectContact item)
        {
            StringBuilder builder = GetBaseQueryBuilder();

            builder.Append("UPDATE ProjectContact SET ");
            builder.Append(string.Format("{0} = {1}", ProjectFactory.FieldNames.ProjectId, DataHelper.GetSqlValue(item.Project)));
            builder.Append(string.Format("{0} = {1}", ContactFactory.FieldNames.ContactId, DataHelper.GetSqlValue(item.Contact)));
            builder.Append(string.Format("{0} = {1}", ProjectFactory.FieldNames.OnFinalDistributionList, DataHelper.GetSqlValue(item.OnFinalDistributionList)));
            builder.Append(" ");
            builder.Append(this.BuildBaseWhereClause(item.Key));
        }
示例#15
0
        protected void PersistDeletedItem(ProjectContact contact)
        {
            StringBuilder builder = new StringBuilder(100);

            builder.Append("UPDATE ProjectContact SET ");
            builder.Append(string.Format("{0} = {1}",
                                         ProjectFactory.FieldNames.OnFinalDistributionList,
                                         DataHelper.GetSqlValue(contact.OnFinalDistributionList)));
            builder.Append(" ");
            builder.Append(string.Format("WHERE ProjectContactID = '{0}'", contact.Key));
            this.Database.ExecuteNonQuery(this.Database.GetSqlStringCommand(builder.ToString()));
        }
示例#16
0
        internal static RoutingItem BuildRoutingItem(object projectKey, IDataReader reader)
        {
            ProjectContact contact = ProjectService.GetProjectContact(projectKey,
                                                                      reader[FieldNames.ProjectContactId]);

            return(new RoutingItem(reader[FieldNames.RoutingItemId],
                                   TransmittalFactory.BuildDiscipline(reader),
                                   DataHelper.GetInteger(reader[FieldNames.RoutingOrder]),
                                   contact,
                                   DataHelper.GetDateTime(reader[FieldNames.DateSent]),
                                   DataHelper.GetNullableDateTime(reader[FieldNames.DateReturned])));
        }
 public bool AddProjectContact(ProjectContact projectContact)
 {
     try
     {
         _projectContactService.InsertProjectContact(projectContact);
         return(true);
     }
     catch
     {
         return(false);
     }
 }
        public void SaveContact(ProjectContact contact)
        {
            List <ProjectContact> contacts = new List <ProjectContact>(this.FindBy(contact.Project.Key).Contacts);

            if (contacts.Where(c => c.Key.Equals(contact.Key)).Count() > 0)
            {
                this.UnitOfWork.RegisterChanged(contact, this);
            }
            else
            {
                this.UnitOfWork.RegisterAdded(contact, this);
            }
        }
示例#19
0
 public MutableCopyTo(CopyTo copyTo)
 {
     if (copyTo != null)
     {
         this.projectContact = copyTo.Contact;
         this.notes          = copyTo.Notes;
     }
     else
     {
         this.projectContact = null;
         this.notes          = string.Empty;
     }
 }
示例#20
0
        public override void PersistDeletedItem(IEntity item)
        {
            Project project = item as Project;

            if (project != null)
            {
                this.PersistDeletedItem(project);
            }
            else
            {
                ProjectContact contact = item as ProjectContact;
                this.PersistDeletedItem(contact);
            }
        }
示例#21
0
        public async Task FindByCompositeKeyTest()
        {
            Assert.NotNull(dbc = new DBContext(settings.Database.ConnectionString, logger));
            ProjectContactRepository repos = new ProjectContactRepository(settings, logger, dbc);
            int projectId = 1;
            int contactId = 2;

            ProjectContact pc = await repos.FindByPK(new PrimaryKey()
            {
                CompositeKey = new object[] { projectId, contactId }, IsComposite = true
            });

            Assert.NotNull(pc);
        }
        protected void PersistNewItem(ProjectContact contact)
        {
            StringBuilder builder = new StringBuilder(100);

            builder.Append(string.Format("INSERT INTO ProjectContact ({0}, {1}, {2}) ",
                                         ProjectFactory.FieldNames.ProjectId,
                                         ContactFactory.FieldNames.ContactId,
                                         contact.OnFinalDistributionList));
            builder.Append(string.Format("VALUES ({0}, {1}, {2});",
                                         DataHelper.GetSqlValue(contact.Project.Key),
                                         DataHelper.GetSqlValue(contact.Contact.Key),
                                         DataHelper.GetSqlValue(contact.OnFinalDistributionList)));
            this.Database.ExecuteNonQuery(this.Database.GetSqlStringCommand(builder.ToString()));
        }
示例#23
0
        public ReportTemplateProjectContactModel(ProjectContact projectContact)
        {
            // Private properties
            ProjectContact = projectContact;
            Organization   = ProjectContact.Contact.Organization;

            // Public properties
            FullName    = ProjectContact.Contact.GetFullNameFirstLast();
            FirstName   = ProjectContact.Contact.FirstName;
            LastName    = ProjectContact.Contact.LastName;
            Email       = ProjectContact.Contact.Email;
            Phone       = ProjectContact.Contact.Phone;
            ContactType = ProjectContact.ContactRelationshipType.ContactRelationshipTypeName;
        }
示例#24
0
        public async Task <ProjectContact> AddContactAsync(int projectId, int contactId)
        {
            // var project = _context.Projects.SingleOrDefaultAsync(x => x.ProjectId == projectId);
            // var contact = _context.Contacts.SingleOrDefaultAsync(x => x.ContactId == contactId);
            var item = new ProjectContact()
            {
                ProjectId = projectId,
                ContactId = contactId
            };
            var result = await _context.ProjectContacts.AddAsync(item);

            await _context.SaveChangesAsync();

            return(item);
        }
示例#25
0
        public void SaveContact(ProjectContact contact)
        {
            // Get the list of contacts
            List <ProjectContact> contacts =
                new List <ProjectContact>(
                    this.FindBy(contact.Project.Key).Contacts);

            if (contacts.Where(c => c.Key.Equals(contact.Key)).Count() > 0)
            {
                // The contact exists, so update it
                this.UnitOfWork.RegisterChanged(contact, this);
            }
            else
            {
                // The contact is new, so add it
                this.UnitOfWork.RegisterAdded(contact, this);
            }
        }
示例#26
0
        public void Get([FromQuery] int projectId, [FromQuery] int contactId)
        {
            var  project = _db.Projects.Where(p => p.Id == projectId).SingleOrDefault();
            var  contact = _db.Contacts.Where(c => c.Id == contactId).SingleOrDefault();
            bool existingProjectContact = _db.ProjectContacts.Any(pc => pc.ContactId == contactId && pc.ProjectId == projectId);

            if (project == null || contact == null || existingProjectContact)
            {
                throw new ValidationException("Incorrect input");
            }
            var projectContact = new ProjectContact()
            {
                ProjectId = projectId,
                ContactId = contactId
            };

            _db.ProjectContacts.Add(projectContact);
            _db.SaveChanges();
        }
示例#27
0
 public Submittal(object key, SpecificationSection specSection,
                  object projectKey) : base(key, projectKey)
 {
     this.specSection               = specSection;
     this.specSectionPrimaryIndex   = "01";
     this.specSectionSecondaryIndex = "00";
     this.to                            = null;
     this.from                          = null;
     this.dateReceived                  = null;
     this.contractNumber                = string.Empty;
     this.trackingItems                 = new List <TrackingItem>();
     this.remarks                       = string.Empty;
     this.action                        = ActionStatus.NoExceptionTaken;
     this.status                        = null;
     this.dateToField                   = null;
     this.remainderLocation             = SubmittalRemainderLocation.None;
     this.remainderUnderSubmittalNumber = string.Empty;
     this.otherRemainderLocation        = string.Empty;
     this.ValidateInitialization();
 }
        public void SaveContactTest()
        {
            string  projectNumber = "12345.00";
            Project project       = repository.FindBy(projectNumber);
            int     oldCount      = project.Contacts.Count;

            IUnitOfWork        contactUnitOfWork = new UnitOfWork();
            IContactRepository contactRepository = RepositoryFactory.GetRepository <IContactRepository, Contact>(unitOfWork);
            object             contactKey        = "“cae9eb86-5a86-4965-9744-18326fd56a3b";
            Contact            contact           = contactRepository.FindBy(contactKey);

            ProjectContact projectContact = new ProjectContact(project, Guid.NewGuid(), contact);

            this.repository.SaveContact(projectContact);
            this.unitOfWork.Commit();

            Project updatedProject = this.repository.FindBy(projectNumber);

            Assert.AreEqual(oldCount, updatedProject.Contacts.Count - 1);
        }
示例#29
0
 public CopyTo(ProjectContact contact, string notes)
 {
     this.contact = contact;
     this.notes   = notes;
 }
 public void SaveContact(ProjectContact contact)
 {
     throw new Exception("The method or operation is not implemented.");
 }