Esempio n. 1
0
        public ActionResult <OrganizationDetailsViewModel> Create(OrganizationDetailsViewModel model)
        {
            if (ModelState.IsValid)
            {
                var organization = this._mapper.Map <OrganizationDetailsViewModel, Organization>(model);

                this._organizationRepository.Create(organization);
                var mappedOrganization = _mapper.Map <Organization, OrganizationDetailsViewModel>(organization);
                return(CreatedAtAction(nameof(GetById), new { id = organization.Id }, organization));
            }

            return(BadRequest());
        }
        public ActionResult Details(int id)
        {
            try
            {
                var organization = _db.Organizations.Find(id);

                var syncedInfo = new OrganizationSyncedInfo();

                if (organization.OrganizationSyncedInfo != null)
                {
                    syncedInfo = _db.OrganizationSyncedInfos.First(x => x.MerId == id);
                }

                var leadSalesFunnelChecker = new LeadSalesFunnelChecker(id);

                var model = new OrganizationDetailsViewModel()
                {
                    Organization              = organization,
                    OrganizationDetails       = _db.OrganizationDetails.First(od => od.MerId == id),
                    MerDeliveryDetails        = _db.MerDeliveryDetails.First(mdd => mdd.MerId == id),
                    OrganizationSyncedInfo    = syncedInfo,
                    OrganizationBusinessUnits = _db.Organizations.Where(o => o.VAT == organization.VAT && o.SubjectBusinessUnit != ""),
                    Contacts           = _db.Contacts.Where(c => c.OrganizationId == id),
                    CampaignsFor       = _db.Campaigns.Where(c => c.RelatedCompanyId == id),
                    AcquireEmails      = _db.AcquireEmails.Where(a => a.RelatedOrganizationId == id),
                    Educations         = _db.Educations.Where(e => e.RelatedOrganizationId == id),
                    Opportunities      = _db.Opportunities.Where(op => op.RelatedOrganizationId == id),
                    OpportunitiesCount = _db.Opportunities.Count(op => op.RelatedOrganizationId == id),
                    Leads                  = _db.Leads.Where(l => l.RelatedOrganizationId == id),
                    LeadsCount             = _db.Leads.Count(l => l.RelatedOrganizationId == id),
                    ClickVoxQuoteRequests  = _db.ClickVoxQuoteRequests.Where(q => q.RelatedOrganizationId == id).OrderByDescending(q => q.InsertDate),
                    Quotes                 = _db.Quotes.Where(q => q.RelatedOrganizationId == id),
                    ContractDrafts         = _db.ContractDrafts.Where(d => d.RelatedOrganizationId == id),
                    Contracts              = _db.Contracts.Where(c => c.RelatedOrganizationId == id).OrderByDescending(c => c.MerId),
                    TicketsAsReceiver      = _db.DeliveryTicketModels.Where(t => t.ReceiverId == id).OrderByDescending(t => t.SentDate),
                    TicketsAsReceiverCount = _db.DeliveryTicketModels.Where(t => t.ReceiverId == id).OrderByDescending(t => t.SentDate).Count(),
                    TicketsAsSender        = _db.DeliveryTicketModels.Where(t => t.SenderId == id).OrderByDescending(t => t.SentDate),
                    TicketsAsSenderCount   = _db.DeliveryTicketModels.Where(t => t.SenderId == id).OrderByDescending(t => t.SentDate).Count(),
                    Attributes             = _db.OrganizationAttributes.Where(a => a.OrganizationId == id).OrderBy(a => a.AttributeClass),
                    Activities             = _db.ActivityLogs.Where(al => al.Module == ActivityLog.ModuleEnum.Organizations && al.ReferenceId == id).OrderByDescending(al => al.InsertDate),
                    ActivitiesCount        = _db.ActivityLogs.Count(al => al.Module == ActivityLog.ModuleEnum.Organizations && al.ReferenceId == id),
                    LeadSalesFunnelChecker = leadSalesFunnelChecker
                };

                return(View(model));
            }
            catch (FormatException)
            {
                return(View("ErrorWrongInputFormat"));
            }
        }
Esempio n. 3
0
        public ActionResult <OrganizationDetailsViewModel> Update(OrganizationDetailsViewModel model, int id)
        {
            if (ModelState.IsValid && model.Id == id)
            {
                var updatedOrganization = this._organizationRepository.GetItemById(model.Id, null);
                this._mapper.Map(model, updatedOrganization);

                this._organizationRepository.Update(updatedOrganization);
                var mapUpdatedOrganization = this._mapper.Map <Organization, OrganizationDetailsViewModel>(updatedOrganization);
                return(Ok(mapUpdatedOrganization));
            }

            return(BadRequest(ModelState));
        }
Esempio n. 4
0
        public ActionResult Details(int id)
        {
            OrganizationDetails details = _organizationRepository.GetOrganizationDetails(UserContext.User.Id, UserContext.User.OrganizationId, id);

            if (details.Detail == null)
            {
                return(NotFoundResult());
            }

            OrganizationDetailsViewModel viewModel = Mapper.Map <OrganizationDetailsViewModel>(details);

            InitDetailsViewModel(viewModel, details);

            return(View(Mvc.View.Organization.Details, viewModel));
        }
        public ActionResult Details(int id)
        {
            var userId    = User.Identity.GetUserId();
            var viewModel = new OrganizationDetailsViewModel()
            {
                Organization = _context.Organizations.Include(o => o.Jobs).FirstOrDefault(o => o.Id == id),
                Memberships  = _context.Memberships.Where(m => m.OrganizationId == id).Include(m => m.Member).ToList()
            };

            if (viewModel.Organization.OwnerId == userId)
            {
                viewModel.ShowActions = true;
            }

            if (_context.Memberships.FirstOrDefault(m => m.MemberId == userId && m.OrganizationId == id) == null)
            {
                return(new HttpUnauthorizedResult());
            }

            return(View(viewModel));
        }
Esempio n. 6
0
        public ActionResult Edit(int id)
        {
            OrganizationDetails details = _organizationRepository.GetOrganizationDetails(UserContext.User.Id, UserContext.User.OrganizationId, id);

            if (details.Detail == null)
            {
                return(NotFoundResult());
            }

            OrganizationDetailsViewModel viewModel = Mapper.Map <OrganizationDetailsViewModel>(details);

            InitDetailsViewModel(viewModel, details);
            viewModel.HeadIds      = viewModel.Heads.Select(m => m.Key).ToList();
            viewModel.DeputyIds    = viewModel.Deputies.Select(m => m.Key).ToList();
            viewModel.MainJudgeIds = viewModel.MainJudges.Select(m => m.Key).ToList();
            viewModel.JudgeIds     = viewModel.Judges.Select(m => m.Key).ToList();
            viewModel.SecretaryIds = viewModel.Secretaries.Select(m => m.Key).ToList();
            viewModel.CashierIds   = viewModel.Cashiers.Select(m => m.Key).ToList();

            return(View(Mvc.View.Organization.Edit, viewModel));
        }
Esempio n. 7
0
        private void InitDetailsViewModel(OrganizationDetailsViewModel viewModel, OrganizationDetails details)
        {
            InitBaseDetailViewModel(details.Detail, viewModel.Detail);
            InitBaseDetailEntityStateChange(viewModel.Detail);
            ViewData[Mvc.ViewData.Controller] = Mvc.Controller.Organization.Name;

            viewModel.Heads = details
                              .OrganizationMemberTypes
                              .Where(om => om.OrganizationId == details.Detail.Id && om.MemberTypeId == Dom.MemberType.Head)
                              .ToDictionary(t => t.MemberId, t => Format.FormattedInitials(t.LastName, t.FirstName, t.MiddleName));
            viewModel.Deputies = details
                                 .OrganizationMemberTypes
                                 .Where(om => om.OrganizationId == details.Detail.Id && om.MemberTypeId == Dom.MemberType.Deputy)
                                 .ToDictionary(t => t.MemberId, t => Format.FormattedInitials(t.LastName, t.FirstName, t.MiddleName));
            viewModel.MainJudges = details
                                   .OrganizationMemberTypes
                                   .Where(om => om.OrganizationId == details.Detail.Id && om.MemberTypeId == Dom.MemberType.MainJudge)
                                   .ToDictionary(t => t.MemberId, t => Format.FormattedInitials(t.LastName, t.FirstName, t.MiddleName));
            viewModel.Judges = details
                               .OrganizationMemberTypes
                               .Where(om => om.OrganizationId == details.Detail.Id && om.MemberTypeId == Dom.MemberType.Judge)
                               .ToDictionary(t => t.MemberId, t => Format.FormattedInitials(t.LastName, t.FirstName, t.MiddleName));
            viewModel.Secretaries = details
                                    .OrganizationMemberTypes
                                    .Where(om => om.OrganizationId == details.Detail.Id && om.MemberTypeId == Dom.MemberType.Secretary)
                                    .ToDictionary(t => t.MemberId, t => Format.FormattedInitials(t.LastName, t.FirstName, t.MiddleName));
            viewModel.Cashiers = details
                                 .OrganizationMemberTypes
                                 .Where(om => om.OrganizationId == details.Detail.Id && om.MemberTypeId == Dom.MemberType.Cashier)
                                 .ToDictionary(t => t.MemberId, t => Format.FormattedInitials(t.LastName, t.FirstName, t.MiddleName));

            viewModel.HeadItems      = Mapper.Map <ICollection <SelectListItem> >(details.Members);
            viewModel.DeputyItems    = Mapper.Map <ICollection <SelectListItem> >(details.Members);
            viewModel.MainJudgeItems = Mapper.Map <ICollection <SelectListItem> >(details.Members);
            viewModel.JudgeItems     = Mapper.Map <ICollection <SelectListItem> >(details.Members);
            viewModel.SecretaryItems = Mapper.Map <ICollection <SelectListItem> >(details.Members);
            viewModel.CashierItems   = Mapper.Map <ICollection <SelectListItem> >(details.Members);
        }
Esempio n. 8
0
        public ActionResult Edit(OrganizationDetailsViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                var organization = _organizationRepository.Get <Organization>(viewModel.Detail.Id);
                organization.Name        = viewModel.Detail.Name;
                organization.Description = viewModel.Detail.Description;
                organization.CreateDate  = viewModel.Detail.CreateDate;
                if (!string.IsNullOrWhiteSpace(viewModel.Address?.FormattedAddress))
                {
                    if (organization.AddressId != null)
                    {
                        organization.Address.City             = viewModel.Address.City;
                        organization.Address.PostalCode       = viewModel.Address.PostalCode;
                        organization.Address.Street           = viewModel.Address.Street;
                        organization.Address.Number           = viewModel.Address.Number;
                        organization.Address.Latitude         = double.Parse(viewModel.Address.Latitude.Replace(".", ","));
                        organization.Address.Longitude        = double.Parse(viewModel.Address.Longitude.Replace(".", ","));
                        organization.Address.FormattedAddress = viewModel.Address.FormattedAddress;
                    }
                    else
                    {
                        organization.Address = new Address
                        {
                            CountryId        = Dom.Country.Ukraine,
                            City             = viewModel.Address.City,
                            PostalCode       = viewModel.Address.PostalCode,
                            Street           = viewModel.Address.Street,
                            Number           = viewModel.Address.Number,
                            Latitude         = double.Parse(viewModel.Address.Latitude.Replace(".", ",")),
                            Longitude        = double.Parse(viewModel.Address.Longitude.Replace(".", ",")),
                            FormattedAddress = viewModel.Address.FormattedAddress
                        };
                    }
                }
                else
                {
                    if (organization.AddressId != null)
                    {
                        _organizationRepository.Delete(organization.Address);
                        organization.AddressId = null;
                    }
                }
                if (!string.IsNullOrWhiteSpace(viewModel.Website?.Url))
                {
                    if (organization.WebsiteId != null)
                    {
                        organization.Website.Url = viewModel.Website.Url;
                    }
                    else
                    {
                        organization.Website = new Website
                        {
                            Url = viewModel.Website.Url,
                        };
                    }
                }
                else
                {
                    if (organization.WebsiteId != null)
                    {
                        _organizationRepository.Delete(organization.Website);
                        organization.WebsiteId = null;
                    }
                }

                if (organization.OrganizationMemberTypes != null)
                {
                    organization.OrganizationMemberTypes.ToList().ForEach(x => _organizationRepository.Delete(x));
                }
                else
                {
                    organization.OrganizationMemberTypes = new List <OrganizationMemberType>();
                }

                viewModel.HeadIds?.ForEach(m => organization.OrganizationMemberTypes.Add(new OrganizationMemberType {
                    MemberId = m, MemberTypeId = Dom.MemberType.Head
                }));
                viewModel.DeputyIds?.ForEach(m => organization.OrganizationMemberTypes.Add(new OrganizationMemberType {
                    MemberId = m, MemberTypeId = Dom.MemberType.Deputy
                }));
                viewModel.MainJudgeIds?.ForEach(m => organization.OrganizationMemberTypes.Add(new OrganizationMemberType {
                    MemberId = m, MemberTypeId = Dom.MemberType.MainJudge
                }));
                viewModel.JudgeIds?.ForEach(m => organization.OrganizationMemberTypes.Add(new OrganizationMemberType {
                    MemberId = m, MemberTypeId = Dom.MemberType.Judge
                }));
                viewModel.SecretaryIds?.ForEach(m => organization.OrganizationMemberTypes.Add(new OrganizationMemberType {
                    MemberId = m, MemberTypeId = Dom.MemberType.Secretary
                }));
                viewModel.CashierIds?.ForEach(m => organization.OrganizationMemberTypes.Add(new OrganizationMemberType {
                    MemberId = m, MemberTypeId = Dom.MemberType.Cashier
                }));

                _organizationRepository.UnitOfWork.SaveChanges();
                return(RedirectToAction(Mvc.Controller.Organization.Details, Mvc.Controller.Organization.Name, new { id = viewModel.Detail.Id }));
            }

            OrganizationDetails details = _organizationRepository.GetOrganizationDetails(UserContext.User.Id, UserContext.User.OrganizationId, viewModel.Detail.Id);

            InitDetailsViewModel(viewModel, details);

            return(View(Mvc.View.Organization.Edit, viewModel));
        }