public IActionResult Index()
        {
            try
            {
                var value = HttpContext.Session.GetString("user");

                User user = JsonConvert.DeserializeObject <User>(value);
                if (user.role_id == 3)
                {
                    // Models.CustomerContext context = HttpContext.RequestServices.GetService(typeof(BugReportMVC5.Models.CustomerContext)) as Models.CustomerContext;
                    TempData["User"] = user;
                    EmailContext context = HttpContext.RequestServices.GetService(typeof(EmailContext)) as EmailContext;
                    //  List<Email> EmailList = context.GetAllEmails();
                    //ViewBag.ListofEmails = EmailList;

                    return(View(context.GetAllEmails()));
                }
                else
                {
                    ModelState.AddModelError("Error", "Unauthorized!!");
                    return(RedirectToAction("Index", "Home"));
                }
            }

            catch
            {
                ModelState.AddModelError("Error", "Login First!!");
                return(RedirectToAction("Index", "Home"));
            }
        }
Example #2
0
        //Process Mail as mention in defined problem.
        public static void ProcessMail()
        {
            IServiceProvider servicesProvider = BuildDi();

            using (servicesProvider as IDisposable) {
                var emailClient = servicesProvider.GetService <IEmailClient> ();
                using (var emailContext = new EmailContext()) {
                    //step 1: sending "Thank you" to all opened email.
                    var newMails    = emailContext.Email.Where(e => e.Status == EmailStatus.Opened);
                    var welcomeBody = GetWelcomeMessage();
                    newMails.ToList().ForEach(i => {
                        emailClient.Send(i.From, i.To, "Welcome", welcomeBody.Replace("{EmailID}", i.EmailId.ToString()));
                    });
                    //step 2: sending "Thank you" to all opened email.
                    var openedMails = emailContext.Email.Where(e => e.Status == EmailStatus.Opened);
                    openedMails.ToList().ForEach(i => {
                        emailClient.Send(i.From, i.To, "Thank you", "body");
                    });
                    //step 3: sending Reminder to all
                    var sentMails = emailContext.Email.Where(e => e.Status == EmailStatus.Sent && e.CreatedAt >= DateTime.UtcNow.AddDays(-3));
                    sentMails.ToList().ForEach(i => {
                        emailClient.Send(i.From, i.To, "Gentel Reminder", "body");
                    });
                }
            }
        }
Example #3
0
        public static void EnsurePopulated(IApplicationBuilder app)
        {
            EmailContext context = app.ApplicationServices
                                   .CreateScope().ServiceProvider.GetRequiredService <EmailContext>();

            if (context.Database.GetPendingMigrations().Any())
            {
                context.Database.Migrate();
            }
            if (!context.Emails.Any())
            {
                context.Emails.AddRange(
                    new Email {
                    E_mailDirtetion = "*****@*****.**", Pasword = "ljagn", Id_user = 1, Id_permissions = 100
                },
                    new Email {
                    E_mailDirtetion = "*****@*****.**", Pasword = "ojr ngea", Id_user = 2, Id_permissions = 110
                },
                    new Email {
                    E_mailDirtetion = "*****@*****.**", Pasword = "lsotkrhnow", Id_user = 3, Id_permissions = 111
                },
                    new Email {
                    E_mailDirtetion = "*****@*****.**", Pasword = "lsotk6u0rhnow", Id_user = 4, Id_permissions = 001
                },
                    new Email {
                    E_mailDirtetion = "*****@*****.**", Pasword = "wjsrtyu.ry", Id_user = 5, Id_permissions = 101
                }
                    );
                context.SaveChanges();
            }
        }
Example #4
0
        public static async Task <List <string> > RunOrchestrator(
            [OrchestrationTrigger] DurableOrchestrationContext context)
        {
            var runContext = context.GetInput <ReportContext>();

            runContext.Date = DateTime.Now;
            var outputs = new List <string>();

            // First task loads html from template in blob storage and updates the content inside
            var updatedHtml = await context.CallActivityAsync <string>("ReplaceHtmlContent", new object[] { runContext.Template, runContext.JSON });

            // convert html into pdf, upload to blob storage and get download link
            var pdf = await context.CallActivityAsync <string>("ProducePdf", new string[] { updatedHtml, runContext.ReportName });

            outputs.Add(pdf);

            var email = new EmailContext
            {
                BCC     = runContext.Recipients,
                Subject = $"Report generated {runContext.ReportName} @ {DateTime.Now}",
                body    = $"Report Access Link: <hr/> <a href=\"{pdf}\">{pdf}</a>"
            };

            // run the next two tasks at the same time
            var tasks = new List <Task> {
                context.CallActivityAsync("EmailReportNotification", email),
                context.CallActivityAsync("AuditReport", runContext)
            };

            await Task.WhenAll(tasks);

            return(outputs);
        }
        public static string GetUsersByParentId(string groupId, string subGroupId)
        {
            string result = string.Empty;

            using (var context = new EmailContext())
            {
                var entities = context.EmailUsers.Select(u => new
                {
                    u.ID,
                    u.GroupID,
                    u.SubGroupID,
                    u.UserName,
                    u.Email,
                    u.Phone
                }).ToList();
                if (groupId != "-1")
                {
                    entities = entities.Where(a => a.GroupID == int.Parse(groupId)).ToList();
                }
                if (subGroupId != "0")
                {
                    entities = entities.Where(a => a.SubGroupID == int.Parse(subGroupId)).ToList();
                }
                result = JsonConvert.SerializeObject(entities, Formatting.Indented);
            }
            return(result);
        }
Example #6
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env, IServiceProvider serviceProvider)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseMvc();


            var scheduler = serviceProvider.GetService <IScheduler>();

            QuartzServicesUtilities.StartJob <ReadEmailsJob>(scheduler, new TimeSpan(0, 1, 0));

            using (var client = new EmailContext())
            {
                client.Database.EnsureCreated();
            }
            //var _settingsService = serviceProvider.GetService<ISettingsService>();
            //var _mailService = serviceProvider.GetService<IMailService>();

            //var emailAccounts = _settingsService.GetEmailAccounts().Result;
            //foreach (var emailAccount in emailAccounts)
            //{
            //    _mailService.GetMessages(emailAccount);
            //}
        }
Example #7
0
        public EmailContext ComposeEmailContextForInterviewFeedbackReminder(int interviewId)
        {
            var emailContext      = new EmailContext();
            var selectedInterview = _interviewRoundRepository.Get(interviewId, "JobOpening,Candidate.Person,Round,Interviewer.Person");

            if (selectedInterview != null)
            {
                emailContext.PlaceHolders = new List <PlaceHolder>
                {
                    new PlaceHolder("[Id]", selectedInterview.Id.ToString()),
                    new PlaceHolder("[JobOpening]", selectedInterview.JobOpening.Title),
                    new PlaceHolder("[Candidate]", selectedInterview.Candidate.Person.Name),
                    new PlaceHolder("[Round]", selectedInterview.Round.Title),
                    new PlaceHolder("[Interviewer]", selectedInterview.Interviewer.Person.Name),
                    new PlaceHolder("[ScheduledOn]", selectedInterview.ScheduledOn.ToString()),
                };

                emailContext.Subject = "Interview Feedback Reminder";

                emailContext.ToAddress.Add(new MailAddress(selectedInterview.Interviewer.OfficialEmail, selectedInterview.Interviewer.Person.Name));

                var settings = _settingsService.GetSiteSettings();
                if (settings.POCSettings != null)
                {
                    var selectedPOC = _userRepository.Get(settings.POCSettings.HRDepartmentLevel1, "Person");
                    if (selectedPOC != null)
                    {
                        var pocAddress = new MailAddress(selectedPOC.OfficialEmail, selectedPOC.Person.Name);
                        emailContext.CcAddress.Add(pocAddress);
                    }
                }
            }

            return(emailContext);
        }
        static void Main(string[] args)
        {
            using (var db = new EmailContext())
            {
                // Create a new app this will also log the user in.
                var authApp = new AuthApp();
                // Create a new email handler for retrieving emails using MS Graph.
                var graphEmailClient = new GraphEmailHandler(authApp);
                // Database handler.
                var dbHandler = new EmailDbStorage(authApp.UserAccount.Username, db);
                // Handler for syncing emails with the database.
                var emailHandler = new EmailHandler.EmailHandler(graphEmailClient, dbHandler);
                Console.WriteLine("Syncing email database...");
                // Complete the initial sync with the database.
                emailHandler.InitialEmailsSyncAsync();

                while (!Console.KeyAvailable)
                {
                    Console.WriteLine("Updating email db...");
                    // Sync the emails until a key is pressed.
                    emailHandler.SyncEmailsAsync();
                    // Sleep so that the db is not updated more than every 30s.
                    // TODO: make this async.
                    Thread.Sleep(30000);
                }
            }
        }
        public async Task Get_GetsExistingEmail()
        {
            // arrange
            using var contextFactory   = new TestEmailContextFactory();
            using EmailContext context = contextFactory.CreateContext();
            // insert test data here, or maybe have a helper method somewhere to possibly share it between tests
            var insertedEmail = new Message
            {
                Guid     = Guid.NewGuid(),
                OrigDate = new DateTimeOffset(2021, 1, 1, 0, 0, 0, new TimeSpan(0)),
                From     = new Account {
                    Address = "*****@*****.**"
                },
                Subject = "example subject",
                Body    = "asdf"
            };

            context.Messages.Add(insertedEmail);
            context.SaveChanges();
            var repo = new MessageRepository(context);

            // act
            Business.Email email = await repo.GetByIdAsync(insertedEmail.Guid);

            // assert
            Assert.Equal(insertedEmail.Guid, email.Id);
            Assert.Equal(insertedEmail.Body, email.Body);
            Assert.Equal(insertedEmail.OrigDate, email.OrigDate);
            Assert.Equal(insertedEmail.From.Address, email.From);
            Assert.Equal(insertedEmail.Subject, email.Subject);
        }
        private void Initialise()
        {
            ctx = new EmailContext();
            var user = this.Application.ActiveExplorer().Session.CurrentUser.Name;

            jobs = ctx.Jobs;
        }
Example #11
0
        public EmailContext ComposeEmailContextForTaskMissed(int taskId)
        {
            var emailContext = new EmailContext();
            var selectedTask = _taskRepository.Get(taskId, "Project,Assignee.User.Person,CreatedByUser.Person");

            if (selectedTask != null)
            {
                emailContext.PlaceHolders = new List <PlaceHolder>
                {
                    new PlaceHolder("[Id]", selectedTask.Id.ToString()),
                    new PlaceHolder("[Title]", selectedTask.Title),
                    new PlaceHolder("[Description]", selectedTask.Description),
                    new PlaceHolder("[Project]", selectedTask.Project.Title),
                    new PlaceHolder("[Status]", Enum.GetName(typeof(ProjectTaskStatus), selectedTask.TaskStatus)),
                    new PlaceHolder("[AssignedTo]", selectedTask.Assignee.User.Person.Name),
                    new PlaceHolder("[CreatedBy]", selectedTask.CreatedByUser.Person.Name)
                };

                emailContext.Subject = "Task Missed";

                emailContext.ToAddress.Add(new MailAddress(selectedTask.Assignee.OfficialEmail, selectedTask.Assignee.User.Person.Name));
                emailContext.CcAddress.Add(new MailAddress(selectedTask.CreatedByUser.OfficialEmail, selectedTask.CreatedByUser.Person.Name));
            }

            return(emailContext);
        }
Example #12
0
        public async Task <IActionResult> GetVerifierCode(ForgetPasswordGetVerifierCodePostData postData)
        {
            try
            {
                string type         = VerifierType.ForgetPassword.ToString();
                string verifierCode = await this.verifierService.GetVerifierCode(type, postData.Email);

                if (string.IsNullOrEmpty(verifierCode))
                {
                    this.logger.LogError($"Get Verifier Code Fail For Get Verifier Code >>> Email:{postData.Email}");
                    return(BadRequest("取得查詢密碼驗證碼失敗."));
                }

                EmailContext      emailContext   = EmailContext.GetVerifierCodetEmailContextForForgetPassword(postData.Email, verifierCode);
                ResponseResultDto responseResult = await this.verifierService.SendVerifierCode(type, postData.Email, verifierCode, emailContext);

                if (responseResult.Ok)
                {
                    return(Ok(responseResult.Data));
                }

                return(BadRequest(responseResult.Data));
            }
            catch (Exception ex)
            {
                this.logger.LogError($"Get Verifier Code Error >>> Email:{postData.Email}\n{ex}");
                return(BadRequest("請求產生驗證碼發生錯誤."));
            }
        }
Example #13
0
        public async Task <List <EmailVO> > FindEmailsByPersonId(EmailContext ctx, int personId)
        {
            List <EmailVO> model = new List <EmailVO>();

            try
            {
                var query = await(from email in ctx.Emails
                                  where email.PersonId == personId
                                  select new
                {
                    email.Id,
                    email.Domain
                }).ToListAsync();
                foreach (var email in query)
                {
                    EmailVO em = new EmailVO()
                    {
                        Id     = FillItemForDatabase.FillItem(email.Id),
                        Domain = FillItemForDatabase.FillItem(email.Domain)
                    };
                    model.Add(em);
                }
            }
            catch
            {
                throw;
            }

            return(model);
        }
        public async Task SendAsync(EmailContext context)
        {
            var senderInfo =
                GetSenderInfo();
            var mail = new MailMessage();

            mail.To.Add(new MailAddress(context.To));
            mail.From       = new MailAddress(senderInfo.From);
            mail.Subject    = context.Subject;
            mail.Body       = context.Content;
            mail.IsBodyHtml = true;

            using (var smtp = new SmtpClient())
            {
                var credential = new NetworkCredential
                {
                    UserName = senderInfo.UserName,
                    Password = senderInfo.Password
                };
                smtp.Credentials = credential;
                smtp.Host        = senderInfo.Host;
                smtp.Port        = senderInfo.Port;
                smtp.EnableSsl   = senderInfo.IsSSlEnabled;
                await smtp.SendMailAsync(mail);
            }
        }
 public EmailSpoolerDependencies(ISimpleLogger logger)
 {
     Logger             = logger;
     DbContext          = new EmailContext();
     EmailConfig        = EmailConfiguration.CreateFromAppConfig();
     EmailSpoolerConfig = new EmailSpoolerConfig(logger);
     EmailGenerator     = () => new Email(EmailConfig);
 }
        public void CreateEmailsReturnsEmptyEnumerableOfEmailsWhenThereAreNoUsersInEmailContext()
        {
            var emailContext = new EmailContext();

            var emails = _commonEmailFactory.CreateEmails(TestEmailTemplateContent, emailContext);

            Assert.NotNull(emails);
        }
Example #17
0
 public PasswordResetController(EmailContext context, IMapper mapper, UserManager <User> userManager, SignInManager <User> signInManager, IEmailSender emailSender)
 {
     _context       = context;
     _mapper        = mapper;
     _userManager   = userManager;
     _signInManager = signInManager;
     _emailSender   = emailSender;
     EmailSeeder.PopulateTestData(_context);
 }
        public async Task <EmailContext> GetEmailContextAsync()
        {
            var users = await _userRepository.GetAllAsync();

            var context = new EmailContext();

            context.Users.AddRange(users);

            return(context);
        }
Example #19
0
        public bool SendEmailService(EmailContext email)
        {
            _mail = new MailMessage(from: email.EmailOrigin, to: email.EmailAddress
                                    , body: email.Body, subject: email.Message);

            _smtpService = new SmtpService();
            _credential  = new NetworkCredential(email.EmailOrigin, EmailKey.GetEmailKey());

            return(_smtpService.SendEmail(_mail, _credential));
        }
        protected void btnSaveUser_Click(object sender, EventArgs e)
        {
            string userName   = this.txtUserName.Text.Trim();
            string groupId    = this.ddlGroupID.SelectedValue;
            string subGroupId = this.ddlSubGroupID.SelectedValue;
            string email      = this.txtEmail.Text.Trim();
            string phone      = this.txtPhone.Text.Trim();
            string summary    = this.txtSummary.Text.Trim();

            using (var context = new EmailContext())
            {
                if (this.hideUserAction.Value == "add")
                {
                    var entity = new EmailUser
                    {
                        UserName   = userName,
                        GroupID    = int.Parse(groupId),
                        SubGroupID = int.Parse(subGroupId),
                        Email      = email,
                        Phone      = phone,
                        Summary    = summary,
                        AddDate    = DateTime.Now
                    };
                    context.EmailUsers.Add(entity);
                    context.SaveChanges();
                    this.txtUserName.Text = string.Empty;
                    this.txtEmail.Text    = string.Empty;
                    this.txtPhone.Text    = string.Empty;
                    this.txtSummary.Text  = string.Empty;
                }
                if (this.hideUserAction.Value == "edit")
                {
                    var id     = this.hideUserID.Value;
                    var entity = context.EmailUsers.Find(int.Parse(id));
                    if (entity != null)
                    {
                        entity.UserName   = userName;
                        entity.GroupID    = int.Parse(groupId);
                        entity.SubGroupID = int.Parse(subGroupId);
                        entity.Email      = email;
                        entity.Phone      = phone;
                        entity.Summary    = summary;
                        entity.AddDate    = DateTime.Now;
                        context.SaveChanges();
                        this.txtUserName.Text     = string.Empty;
                        this.txtEmail.Text        = string.Empty;
                        this.txtPhone.Text        = string.Empty;
                        this.txtSummary.Text      = string.Empty;
                        this.hideUserAction.Value = "add";
                        this.hideUserID.Value     = "0";
                    }
                }
                InitRepeater5(this.AspNetPager5.CurrentPageIndex, int.Parse(this.ddlGroupID.SelectedValue), int.Parse(this.ddlSubGroupID.SelectedValue));
            }
        }
 private void InitRepeater4(int currentPageIndex = 1, int parentId = 0)
 {
     using (var context = new EmailContext())
     {
         var entities = context.EmailGroups.OrderByDescending(g => g.ID).Where(g => g.ParentID == parentId).Select(g => g);
         this.AspNetPager4.RecordCount      = entities.Count();
         this.AspNetPager4.CurrentPageIndex = currentPageIndex;
         this.Repeater4.DataSource          = entities.Skip((currentPageIndex - 1) * this.AspNetPager4.PageSize).Take(this.AspNetPager4.PageSize).ToList();
         this.Repeater4.DataBind();
     }
 }
        public IQueryable DropDownList1_GetData()
        {
            var context = new EmailContext();
            var items   = context.EmailGroups.Where(g => g.ParentID == 0).Select(g => new
            {
                text  = g.GroupName,
                value = g.ID.ToString()
            });

            return(items);
        }
        public async Task <bool> TryDequeueAsync()
        {
            emailContext = await _emailQueue.ReceiveFromFileAsync();

            if (emailContext == null)
            {
                return(false);
            }

            Task.Start();
            return(true);
        }
        protected void btnSendEmail_Click(object sender, EventArgs e)
        {
            string      receiver    = this.txtReceiver.Text.Trim();
            string      subject     = this.txtSubject.Text.Trim();
            MailMessage mailMessage = new MailMessage();

            string content = this.hideMailContent.Value;

            mailMessage.From       = "*****@*****.**";
            mailMessage.Subject    = subject;
            mailMessage.IsBodyHtml = true;
            mailMessage.HtmlBody   = content;
            string[] users = receiver.Split(',');
            foreach (string user in users)
            {
                int    startIndex = user.IndexOf('<') + 1;
                int    length     = user.Length;
                string email      = user.Substring(startIndex, length - startIndex - 1);
                mailMessage.To.Add(email);
            }
            //创建附件
            if (Session["tempTable"] != null)
            {
                DataTable table = (DataTable)Session["tempTable"];
                foreach (DataRow row in table.Rows)
                {
                    mailMessage.Attachments.Add(new Attachment(row["FilePath"].ToString()));
                }
            }
            SmtpClient client = AsposeUtilities.GetSmtpClient(this.Request.ApplicationPath);

            try
            {
                client.Send(mailMessage);
                using (var context = new EmailContext())
                {
                    var entity = new SendLog
                    {
                        Sender   = CookieUtilities.GetCookieValue("username"),
                        Receiver = receiver,
                        SendTime = DateTime.Now,
                        SendType = "Email"
                    };
                    context.SendLogs.Add(entity);
                    context.SaveChanges();
                }
                ScriptManager.RegisterStartupScript(this.UpdatePanel1, GetType(), "a", "alert('邮件发送成功')", true);
            }
            catch (Exception ex)
            {
                ScriptManager.RegisterStartupScript(this.UpdatePanel1, GetType(), "a", "alert('邮件发送失败!" + ex.Message + "')", true);
            }
        }
Example #25
0
        private async Task SaveToFile(EmailContext emailMessage)
        {
            string fileName = $"{Guid.NewGuid()}.json";

            byte[] data = JsonSerializer.SerializeToUtf8Bytes(emailMessage);
            await File.WriteAllBytesAsync(Path.Combine(Folder, fileName), data);

            lock (_stack)
            {
                _stack.Push(fileName);
            }
        }
Example #26
0
        public EmailContext ComposeEmailContextForTicketUpdated(int ticketId)
        {
            var emailContext = new EmailContext();

            var selectedTicket = _ticketRepository.Get(ticketId, "TicketCategory,TicketSubCategory,CreatedByUser.Person,AssignedToUser.Person");

            if (selectedTicket != null)
            {
                emailContext.PlaceHolders = new List <PlaceHolder>
                {
                    new PlaceHolder("[Category]", selectedTicket.TicketCategory.Title),
                    new PlaceHolder("[SubCategory]", selectedTicket.TicketSubCategory.Title),
                    new PlaceHolder("[Title]", selectedTicket.Title),
                    new PlaceHolder("[Description]", selectedTicket.Description),
                    new PlaceHolder("[CreatedBy]", selectedTicket.CreatedByUser.Person.Name),
                    new PlaceHolder("[Id]", selectedTicket.Id.ToString()),
                    new PlaceHolder("[AssignedTo]", selectedTicket.AssignedToUser.Person.Name),
                    new PlaceHolder("[Status]", selectedTicket.Status.ToString())
                };

                emailContext.Subject = "Ticket Status Updated";

                emailContext.ToAddress.Add(new MailAddress(selectedTicket.CreatedByUser.OfficialEmail, selectedTicket.CreatedByUser.Person.Name));

                var settings = _settingsService.GetSiteSettings();
                if (settings.POCSettings != null)
                {
                    int?pointOfContact = null;
                    switch (selectedTicket.TicketCategory.Title)
                    {
                    case "IT":
                        pointOfContact = settings.POCSettings.ITDepartmentLevel1;
                        break;

                    case "HR":
                        pointOfContact = settings.POCSettings.HRDepartmentLevel1;
                        break;
                    }

                    if (pointOfContact.HasValue)
                    {
                        var selectedPOC = _userRepository.Get(pointOfContact.Value, "Person");
                        if (selectedPOC != null)
                        {
                            var pocAddress = new MailAddress(selectedPOC.OfficialEmail, selectedPOC.Person.Name);
                            emailContext.CcAddress.Add(pocAddress);
                        }
                    }
                }
            }

            return(emailContext);
        }
Example #27
0
        private void SendEmail(string templateName, EmailContext context)
        {
            if (context != null)
            {
                // short Circuit, If there is DropEmail set, we dont have to send this email.
                if (context.DropEmail)
                {
                    return;
                }

                var emailService  = CreateEmailService();
                var emailTemplate = GetEmailTemplate(templateName);
                var emailBody     = SimpleTemplateProcessor.Process(emailTemplate, context.PlaceHolders);

                var fromAddress = GetFromAddress();

                var mailMessage = new MailMessage
                {
                    From = fromAddress
                };

                // Add To address
                foreach (var toAddress in context.ToAddress)
                {
                    mailMessage.To.Add(toAddress);
                }

                // Add cc address
                foreach (var ccAddress in context.CcAddress)
                {
                    mailMessage.CC.Add(ccAddress);
                }

                // Set Subject
                mailMessage.Subject = context.Subject;

                // Set Body
                mailMessage.Body       = emailBody;
                mailMessage.IsBodyHtml = true;

                if (context.EmailAttachments.Any())
                {
                    foreach (var emailAttachment in context.EmailAttachments)
                    {
                        Stream stream = new MemoryStream(emailAttachment.Content);
                        mailMessage.Attachments.Add(new Attachment(stream, emailAttachment.FileName, emailAttachment.FileType));
                    }
                }

                emailService.SendEmail(mailMessage);
            }
        }
 public static string GetGroupByParentId(string parentId)
 {
     using (var context = new EmailContext())
     {
         int id    = int.Parse(parentId);
         var items = context.EmailGroups.Where(g => g.ParentID == id).Select(g => new
         {
             text  = g.GroupName,
             value = g.ID.ToString()
         }).ToList();
         return(JsonConvert.SerializeObject(items, Formatting.Indented));
     }
 }
        protected void btnSaveGroup_Click(object sender, EventArgs e)
        {
            string groupName        = this.txtGroupName.Text.Trim();
            string parentId         = this.ddlParentGroupID.SelectedValue;
            string groupDescription = this.txtGroupDescription.Text.Trim();

            using (var context = new EmailContext())
            {
                if (this.hideGroupAction.Value == "add")
                {
                    var entity = context.EmailGroups.FirstOrDefault(g => g.GroupName == groupName);
                    if (entity == null)
                    {
                        entity = new EmailGroup
                        {
                            GroupName        = groupName,
                            ParentID         = int.Parse(parentId),
                            GroupDescription = groupDescription
                        };
                        context.EmailGroups.Add(entity);
                        context.SaveChanges();
                        this.txtGroupName.Text        = string.Empty;
                        this.txtGroupDescription.Text = string.Empty;
                    }
                    else
                    {
                        ScriptManager.RegisterStartupScript(this.GroupUpdatePanel, GetType(), "a", "alert('此分组名称已经存在')", true);
                        return;
                    }
                }
                if (this.hideGroupAction.Value == "edit")
                {
                    var id     = this.hideGroupID.Value;
                    var entity = context.EmailGroups.Find(int.Parse(id));
                    if (entity != null)
                    {
                        entity.GroupName        = groupName;
                        entity.ParentID         = int.Parse(parentId);
                        entity.GroupDescription = groupDescription;
                    }
                    context.SaveChanges();
                    this.txtGroupName.Text = string.Empty;
                    this.ddlParentGroupID.SelectedIndex = -1;
                    this.txtGroupDescription.Text       = string.Empty;
                    this.hideGroupID.Value     = "0";
                    this.hideGroupAction.Value = "add";
                }
            }
            InitRepeater4(this.AspNetPager4.CurrentPageIndex);
            ddlParentGroupID_GetData();
        }
Example #30
0
        public EmailContext ComposeEmailContextForAssetStateChanged(int assetId)
        {
            var emailContext  = new EmailContext();
            var selectedAsset = _assetRepository.Get(assetId, "AssetCategory,AllocatedEmployee.User.Person");
            var settings      = _settingsService.GetSiteSettings();

            if (selectedAsset != null)
            {
                emailContext.PlaceHolders = new List <PlaceHolder>
                {
                    new PlaceHolder("[AssetTitle]", selectedAsset.Title),
                    new PlaceHolder("[AssetSerial]", selectedAsset.SerialNumber),
                    new PlaceHolder("[AssetTag]", selectedAsset.TagNumber),
                    new PlaceHolder("[AssetCategory]", selectedAsset.AssetCategory.Title),
                    new PlaceHolder("[AssetState]", selectedAsset.State.ToString())
                };

                if (selectedAsset.AllocatedEmployee != null)
                {
                    emailContext.PlaceHolders.Add(new PlaceHolder("[Name]", selectedAsset.AllocatedEmployee.User.Person.Name));
                    emailContext.ToAddress.Add(new MailAddress(selectedAsset.AllocatedEmployee.OfficialEmail, selectedAsset.AllocatedEmployee.User.Person.Name));
                }

                // Use POC settings
                if (settings.POCSettings != null)
                {
                    var pointOfContact = settings.POCSettings.ITDepartmentLevel1;
                    //var selectedPOC = _userRepository.Get(pointOfContact, "Person");
                    var selectedPOC = _employeeRepository.Get(pointOfContact, "User,User.Person");

                    if (selectedPOC != null)
                    {
                        var pocAddress = new MailAddress(selectedPOC.OfficialEmail, selectedPOC.User.Person.Name);

                        // No Assigned Person
                        if (selectedAsset.AllocatedEmployee == null)
                        {
                            emailContext.PlaceHolders.Add(new PlaceHolder("[Name]", selectedPOC.User.Person.Name));
                            emailContext.ToAddress.Add(pocAddress);
                        }

                        // Copy POC
                        emailContext.CcAddress.Add(pocAddress);
                    }
                }

                emailContext.Subject = "Asset Modification";
            }

            return(emailContext);
        }