コード例 #1
0
        /// <summary>
        /// Adds the specified request.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <returns></returns>
        public tbl_Request Add(tbl_Request request)
        {
            request.ID = Guid.NewGuid();
            _dataContext.tbl_Request.AddObject(request);
            _dataContext.SaveChanges();

            RequestNotificationService.Register(request);

            AddHistory(new DataManager(), request);

            return(request);
        }
コード例 #2
0
        /// <summary>
        /// Updates the specified requirement.
        /// </summary>
        /// <param name="requirement">The requirement.</param>
        public void Update(tbl_Requirement requirement)
        {
            var dataManager           = new DataManager();
            var requirementInDataBase = dataManager.Requirement.SelectById(requirement.SiteID, requirement.ID);

            _dataContext.SaveChanges();

            if (requirementInDataBase.RequirementStatusID != requirement.RequirementStatusID || requirementInDataBase.ResponsibleID != requirement.ResponsibleID)
            {
                AddHistory(dataManager, requirement);
            }

            if (requirementInDataBase.ResponsibleID != requirement.ResponsibleID)
            {
                RequestNotificationService.ChangeResponsible(requirement.SiteID, requirement.ID, (Guid)requirement.ResponsibleID);
            }
        }
コード例 #3
0
        /// <summary>
        /// Updates the specified request.
        /// </summary>
        /// <param name="request">The request.</param>
        public void Update(tbl_Request request)
        {
            var dataManager       = new DataManager();
            var requestInDataBase = dataManager.Request.SelectById(request.SiteID, request.ID);

            _dataContext.SaveChanges();

            if (requestInDataBase.RequestStatusID == (int)RequestStatus.New && requestInDataBase.RequestStatusID != request.RequestStatusID)
            {
                RequestNotificationService.Process(request);
            }

            if (requestInDataBase.RequestStatusID != request.RequestStatusID || requestInDataBase.ResponsibleID != request.ResponsibleID)
            {
                AddHistory(dataManager, request);
            }
        }
コード例 #4
0
        /// <summary>
        /// Changes the status.
        /// </summary>
        protected void ChangeStatus()
        {
            var requirement = DataManager.Requirement.SelectById(SiteId, ObjectId);

            if (requirement != null)
            {
                CheckWriteAccess(requirement.OwnerID, "Requirements");

                requirement.RequirementStatusID = ucRequirementStatus.RequirementStatusId;

                if (ResponsibleId != Guid.Empty)
                {
                    requirement.ResponsibleID = ResponsibleId;
                    RequestNotificationService.ChangeResponsible(SiteId, requirement.ID, (Guid)requirement.ResponsibleID);
                }

                DataManager.Requirement.Update(requirement);
            }
        }
コード例 #5
0
        public void Run()
        {
            var dataManager = new DataManager();

            var serviceLevelContacts = dataManager.ServiceLevelContact.SelectAll();

            var today = DateTime.Now.Date;

            foreach (var serviceLevelContact in serviceLevelContacts)
            {
                var startDate = today;
                var endDate   = today;

                if (!RequestNotificationService.GetDatesRangeByServiceLevelContact(serviceLevelContact, today, ref startDate, ref endDate))
                {
                    continue;
                }

                var informClient = false;

                switch ((ServiceLevelIncludeToInform)serviceLevelContact.IncludeToInformID)
                {
                case ServiceLevelIncludeToInform.All:
                    informClient = dataManager.Requirement.SelectAllByCompanyId(serviceLevelContact.tbl_ServiceLevelClient.ClientID, startDate, endDate).Any();
                    break;

                case ServiceLevelIncludeToInform.Personal:
                    informClient = dataManager.Requirement.SelectPersonal(serviceLevelContact.ContactID, startDate, endDate).Any();
                    break;
                }

                if (informClient)
                {
                    RequestNotificationService.Notify(serviceLevelContact.tbl_Contact.SiteID, serviceLevelContact.ContactID, serviceLevelContact.ID);
                }
            }
        }
コード例 #6
0
ファイル: Program.cs プロジェクト: 5509850/baumax
        private static void Main(string[] args)
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.ThreadException += Application_ThreadException;

            ClientEnvironment.IsRuntimeMode = true;
            UCBaseEntity.IsDesignMode       = false;
            DefaultDiction.BuildDefaultResource();

            RemotingConfiguration.Configure("Baumax.Client.exe.config", false);

            // Define channel security
            IEnumerator channelEnum = ChannelServices.RegisteredChannels.GetEnumerator();

            while (channelEnum.MoveNext())
            {
                BasicChannelWithSecurity channel = channelEnum.Current as BasicChannelWithSecurity;
                if (channel != null)
                {
                    channel.ITransportContext.IKeyStore.SetKey("/BAUMAX/SES",
                                                               new KeyProvider_SelfEstablishingSymmetric());
                }
            }

            if (!DoLogin())
            {
                return;
            }

            try
            {
                mainForm       = new MainForm();
                mainForm.Text +=
                    String.Format(" - '{0}'", ClientEnvironment.AuthorizationService.GetCurrentUser().LoginName);
                ClientEnvironment.MainForm = mainForm;

                RequestNotificationService.Attach(mainForm);

                GenuineGlobalEventProvider.GenuineChannelsGlobalEvent +=
                    GenuineGlobalEventProvider_GenuineChannelsGlobalEvent;

                ReportLocalizer.InitDevExPreviewLocalizer();
                DevExLocalizer.InitDevExLocalizer();
                DevExGridLocalizer.InitDevExGridLocalizer();

                Application.Run(mainForm);

                ClientEnvironment.DoLogout();
            }
            catch (EntityException ex)
            {
                log.Error("Unhandled", ex);
                // 2think: how to localize?
                using (FrmEntityExceptionDetails frm = new FrmEntityExceptionDetails(ex))
                {
                    frm.Text = "Unhandled exception";
                    frm.ShowDialog();
                }
            }
            catch (Exception ex)
            {
                log.Error("Unhandled", ex);
                MessageBox.Show(ex.ToString(), "Unhandled exception");
            }
        }
コード例 #7
0
        /// <summary>
        /// Replaces the specified subject.
        /// </summary>
        /// <param name="subject">The subject.</param>
        /// <param name="body">The body.</param>
        public override void Replace(ref string subject, ref string body)
        {
            if (!SiteAction.ObjectID.HasValue)
            {
                return;
            }

            PortalSettings = DataManager.PortalSettings.SelectMapBySiteId(SiteAction.SiteID, true);

            ReplaceUserInfo(ref body);

            if (PortalSettings != null)
            {
                PortalLink = DataManager.PortalSettings.SelectPortalLink(PortalSettings.SiteID);
                RequirementLinkTemplate = RequirementLinkTemplate.Replace("#PortalLink#", PortalLink);
                RequestLinkTemplate     = RequestLinkTemplate.Replace("#PortalLink#", PortalLink);
            }

            var request = DataManager.Request.SelectById(SiteAction.SiteID, (Guid)SiteAction.ObjectID);

            if (request != null)
            {
                var         serviceLevel = request.tbl_ServiceLevel;
                tbl_Contact responsible  = null;
                tbl_Contact contact      = null;
                tbl_Company company      = null;

                if (request.ResponsibleID.HasValue)
                {
                    responsible = DataManager.Contact.SelectById(SiteAction.SiteID, (Guid)request.ResponsibleID);
                }
                if (request.ContactID.HasValue)
                {
                    contact = DataManager.Contact.SelectById(SiteAction.SiteID, (Guid)request.ContactID);
                }
                company = request.tbl_Company;

                subject = ReplaceText(subject, request, serviceLevel, responsible, contact, company);
                body    = ReplaceText(body, request, serviceLevel, responsible, contact, company);
                if (body.Contains("#Requirement.RegisteredList#"))
                {
                    var requirements = DataManager.Requirement.SelectByRequestId(request.SiteID, request.ID);

                    ProceedRegisteredRequirements(ref body, requirements);
                }

                if (company != null)
                {
                    body    = body.Replace("#Request.Notification.Company#", company.Name);
                    subject = subject.Replace("#Request.Notification.Company#", company.Name);
                }
                else
                {
                    body    = body.Replace("#Request.Notification.Company#", string.Empty);
                    subject = subject.Replace("#Request.Notification.Company#", string.Empty);
                }
            }


            var requirement = DataManager.Requirement.SelectById(SiteAction.SiteID, (Guid)SiteAction.ObjectID);

            if (requirement != null)
            {
                var shortDescription = requirement.ShortDescription;
                var requirementLink  = string.Format(RequirementLinkTemplate, requirement.ID);
                shortDescription = string.Format("<a href='{0}'>{1}</a>", requirementLink, shortDescription);

                body = body.Replace("#Requirement.ShortDescription#", shortDescription);

                if (requirement.CompanyID.HasValue)
                {
                    body    = body.Replace("#Requirement.Notification.Company#", requirement.tbl_Company.Name);
                    subject = subject.Replace("#Requirement.Notification.Company#", requirement.tbl_Company.Name);
                }
                else
                {
                    body    = body.Replace("#Requirement.Notification.Company#", string.Empty);
                    subject = subject.Replace("#Requirement.Notification.Company#", string.Empty);
                }
            }


            if (((body.Contains("#Requirement.WorkedList#") || body.Contains("#Requirement.CompanyList#") ||
                  body.Contains("#Requirement.CompletedList#")) && SiteAction.ContactID.HasValue))
            {
                var serviceLevelContact = DataManager.ServiceLevelContact.SelectById((Guid)SiteAction.ObjectID);

                if (serviceLevelContact != null)
                {
                    body    = body.Replace("#Requirement.Notification.Company#", serviceLevelContact.tbl_ServiceLevelClient.tbl_Company.Name);
                    subject = subject.Replace("#Requirement.Notification.Company#", serviceLevelContact.tbl_ServiceLevelClient.tbl_Company.Name);

                    var startDate = SiteAction.ActionDate.Date;
                    var endDate   = SiteAction.ActionDate.Date;
                    RequestNotificationService.GetDatesRangeByServiceLevelContact(serviceLevelContact, SiteAction.ActionDate.Date, ref startDate, ref endDate);

                    var requirements = new List <tbl_Requirement>();

                    switch ((ServiceLevelIncludeToInform)serviceLevelContact.IncludeToInformID)
                    {
                    case ServiceLevelIncludeToInform.All:
                        requirements = DataManager.Requirement.SelectAllByCompanyId(serviceLevelContact.tbl_ServiceLevelClient.ClientID, startDate, endDate).ToList();
                        break;

                    case ServiceLevelIncludeToInform.Personal:
                        requirements = DataManager.Requirement.SelectPersonal(serviceLevelContact.ContactID, startDate, endDate).ToList();
                        break;
                    }

                    body = body.Replace("#Requirement.CompanyList#", string.Empty);

                    ProceedWorkedRequirements(ref body, requirements.Where(o => !o.tbl_RequirementStatus.IsLast).ToList(), startDate, endDate);
                    ProceedCompletedRequirements(ref body, requirements.Where(o => o.tbl_RequirementStatus.IsLast).ToList());
                }
            }
        }