Exemple #1
0
        public IHttpActionResult Post([FromBody] ContactModel contactModel)
        {
            if (ModelState.IsValid)
            {
                Contact contact = new Contact();
                contact.Id          = 0;// contactModel.Id;
                contact.FirstName   = contactModel.FirstName;
                contact.LastName    = contactModel.LastName;
                contact.Email       = contactModel.Email;
                contact.DateCreated = DateTime.Now;
                contact.DateUpdated = DateTime.Now;

                foreach (var accountDetails in contactModel.Accounts)
                {
                    Account account = new Account();
                    account.Id   = accountDetails.Id;
                    account.Name = accountDetails.Name;

                    contact.Accounts.Add(account);
                }
                ContactQueries _contactQueries = new ContactQueries();
                _contactQueries.Save(contact);
            }
            return(Ok());
        }
Exemple #2
0
        public IHttpActionResult Get()
        {
            List <Contact> contacts = new List <Contact>();

            ContactQueries _contactQueries = new ContactQueries();

            contacts = _contactQueries.GetAll();
            List <ContactModel> contactModels = new List <ContactModel>();

            foreach (var contact in contacts)
            {
                ContactModel contactModel = new ContactModel();
                contactModel.Id        = contact.Id;
                contactModel.FirstName = contact.FirstName;
                contactModel.LastName  = contact.LastName;
                contactModel.Email     = contact.Email;

                foreach (var account in contact.Accounts)
                {
                    AccountDetails accountDetails = new AccountDetails();
                    accountDetails.Id   = account.Id;
                    accountDetails.Name = account.Name;

                    contactModel.Accounts.Add(accountDetails);
                }
                contactModels.Add(contactModel);
            }
            return(Ok(contactModels));
        }
Exemple #3
0
        public IHttpActionResult Delete(int id)
        {
            ContactQueries _contactQueries = new ContactQueries();
            Contact        contact         = _contactQueries.GetOneById(id);

            _contactQueries.Delete(contact);
            return(Ok());
        }
Exemple #4
0
        /// <summary>
        /// Returns the sorted, filtered, and paged contact DTOs in the eca system.
        /// </summary>
        /// <param name="queryOperator"></param>
        /// <returns></returns>
        public async Task <PagedQueryResults <ContactDTO> > GetContactsAsync(QueryableOperator <ContactDTO> queryOperator)
        {
            var contacts = await ContactQueries.CreateContactQuery(this.Context, queryOperator)
                           .ToPagedQueryResultsAsync <ContactDTO>(queryOperator.Start, queryOperator.Limit);

            this.logger.Trace("Retrieved contacts by query operator [{0}].", queryOperator);

            return(contacts);
        }
Exemple #5
0
        public IHttpActionResult Get(int id)
        {
            Contact        contact         = new Contact();
            ContactQueries _contactQueries = new ContactQueries();

            contact = _contactQueries.GetOneById(id);

            ContactModel contactModel = new ContactModel();

            contactModel.Id        = contact.Id;
            contactModel.FirstName = contact.FirstName;
            contactModel.LastName  = contact.LastName;
            contactModel.Email     = contact.Email;

            foreach (var account in contact.Accounts)
            {
                AccountDetails accountDetails = new AccountDetails();
                accountDetails.Id   = account.Id;
                accountDetails.Name = account.Name;

                contactModel.Accounts.Add(accountDetails);
            }
            return(Ok(contactModel));
        }
Exemple #6
0
        // <summary>
        /// Returns a query to retrieve projets.
        /// </summary>
        /// <param name="context">The context to query</param>
        /// <returns>Project</returns>
        public static IQueryable <ProjectDTO> CreateGetProjectDTOQuery(EcaContext context)
        {
            Contract.Requires(context != null, "The context must not be null.");
            var countryTypeId = LocationType.Country.Id;
            var regionTypeId  = LocationType.Region.Id;
            var allLocations  = LocationQueries.CreateGetLocationsQuery(context);
            var allContacts   = ContactQueries.CreateContactQuery(context);

            var query = from project in context.Projects
                        let program                         = project.ParentProgram
                                                  let owner = program.Owner
                                                              let status = project.Status
                                                                           let themes                         = project.Themes
                                                                                                    let goals = project.Goals
                                                                                                                let categories = project.Categories
                                                                                                                                 let objectives = project.Objectives

                                                                                                                                                  let contacts = from contact in allContacts
                                                                                                                                                                 join projectContact in project.Contacts
                                                                                                                                                                 on contact.Id equals projectContact.ContactId
                                                                                                                                                                 select contact

                                                                                                                                                                 let locations = from location in allLocations
                                                                                                                                                                                 join projectLocation in project.Locations
                                                                                                                                                                                 on location.Id equals projectLocation.LocationId
                                                                                                                                                                                 select location

                                                                                                                                                                                 //get country locations of project locations that are not countries or regions
                                                                                                                                                                                 let locationCountries = from location in project.Locations
                                                                                                                                                                                                         join country in context.Locations
                                                                                                                                                                                                         on location.CountryId equals country.LocationId
                                                                                                                                                                                                         where location.LocationTypeId != regionTypeId &&
                                                                                                                                                                                                         location.LocationTypeId != countryTypeId
                                                                                                                                                                                                         select country

                                                                                                                                                                                                         //get project locations that are themselves countries
                                                                                                                                                                                                         let countries = from location in project.Locations
                                                                                                                                                                                                                         where location.LocationTypeId == countryTypeId
                                                                                                                                                                                                                         select location

                                                                                                                                                                                                                         //get the countries of the project locations that are regions...
                                                                                                                                                                                                                         let regionCountries = from location in project.Locations
                                                                                                                                                                                                                                               join country in context.Locations
                                                                                                                                                                                                                                               on location.LocationId equals country.RegionId
                                                                                                                                                                                                                                               where location.LocationTypeId == regionTypeId &&
                                                                                                                                                                                                                                               country.LocationTypeId == countryTypeId &&
                                                                                                                                                                                                                                               !project.Locations.Contains(country)
                                                                                                                                                                                                                                               select country

                                                                                                                                                                                                                                               let allCountries = locationCountries
                                                                                                                                                                                                                                                                  .Union(regionCountries)
                                                                                                                                                                                                                                                                  .Union(countries)

                                                                                                                                                                                                                                                                  let regions = from location in allLocations
                                                                                                                                                                                                                                                                                join region in project.Regions
                                                                                                                                                                                                                                                                                on location.Id equals region.LocationId
                                                                                                                                                                                                                                                                                select location

                                                                                                                                                                                                                                                                                let projectRegionCountries = from location in allLocations
                                                                                                                                                                                                                                                                                                             join region in project.Regions
                                                                                                                                                                                                                                                                                                             on location.RegionId equals region.LocationId
                                                                                                                                                                                                                                                                                                             where location.LocationTypeId == countryTypeId
                                                                                                                                                                                                                                                                                                             select location

                                                                                                                                                                                                                                                                                                             select new ProjectDTO
            {
                Id                = project.ProjectId,
                Name              = project.Name,
                Description       = project.Description,
                ProjectStatusId   = status.ProjectStatusId,
                Status            = status.Status,
                RevisedOn         = project.History.RevisedOn,
                SevisOrgId        = project.SevisOrgId,
                StartDate         = project.StartDate,
                EndDate           = project.EndDate,
                ProgramId         = project.ProgramId,
                ProgramName       = program.Name,
                OwnerId           = owner.OrganizationId,
                OwnerName         = owner.Name,
                OwnerOfficeSymbol = owner.OfficeSymbol,
                Themes            = themes.Select(x => new SimpleLookupDTO {
                    Id = x.ThemeId, Value = x.ThemeName
                }),
                CountryIsosByLocations = allCountries.Select(x => new SimpleLookupDTO {
                    Id = x.LocationId, Value = x.LocationIso
                }).Distinct(),
                Locations = locations,
                Goals     = goals.Select(x => new SimpleLookupDTO {
                    Id = x.GoalId, Value = x.GoalName
                }),
                Contacts   = contacts,
                Objectives = objectives.Select(o => new JustificationObjectiveDTO {
                    Id = o.ObjectiveId, Name = o.ObjectiveName, JustificationName = o.Justification.JustificationName
                }),
                Categories = categories.Select(c => new FocusCategoryDTO {
                    Id = c.CategoryId, Name = c.CategoryName, FocusName = c.Focus.FocusName
                }),
                Regions = regions,
                CountryIsosByRegions = projectRegionCountries.Select(x => new SimpleLookupDTO {
                    Id = x.Id, Value = x.LocationIso
                }).Distinct(),
                VisitorTypeId           = project.VisitorTypeId,
                VisitorTypeName         = project.VisitorType.VisitorTypeName,
                UsParticipantsEst       = project.UsParticipantsEst ?? 0,
                NonUsParticipantsEst    = project.NonUsParticipantsEst ?? 0,
                UsParticipantsActual    = project.UsParticipantsActual ?? 0,
                NonUsParticipantsActual = project.NonUsParticipantsActual ?? 0
            };

            return(query);
        }
Exemple #7
0
 private IQueryable <ContactDTO> CreateGetContactByIdQuery(int contactId)
 {
     return(ContactQueries.CreateContactQuery(this.Context).Where(c => c.Id == contactId));
 }
 public HomeController()
 {
     _contactQueries = new ContactQueries();
 }
Exemple #9
0
 public Contact GetById(Guid id)
 {
     return(_ctx
            .Contacts
            .FirstOrDefault(ContactQueries.GetById(id)));
 }