public void InsertData(DataCreateModel data, string activity) { Data new_data = null; if (CurrentState != null) { var new_activity = CurrentState.Activities.FirstOrDefault(a => a.Name == activity); if (data.DataType.Equals(DataType.Comment)) { new_data = new Comment { Messages = data.Messages, Topic = data.Topic, Emoji = data.Emoji, DataType = DataType.Comment, UserId = data.UserId, Request = data.Request }; } else if (data.DataType.Equals(DataType.Email)) { new_data = new Email { Contents = data.Contents, Subject = data.Subject, DataType = DataType.Email, UserId = data.UserId, Request = data.Request, Server = data.Server, Client = data.Client, Attach = data.Attach, ConfirmEmail = data.ConfirmEmail, ConfirmPass = data.ConfirmPass, From = data.From, To = data.To, IsSent = data.IsSent, }; } else if (data.DataType.Equals(DataType.TalentLeave)) { new_data = new TLeave { DataType = DataType.TalentLeave, UserId = data.UserId, Request = data.Request, AbsentName = data.AbsentName, ApproverName = data.ApproverName, DayOff = data.DayOff, IsDone = data.IsDone, Reason = data.Reason, IsReallyNotApproved = data.IsReallyNotApproved }; } else if (data.DataType.Equals(DataType.Campaign)) { new_data = new Campaign { DataType = DataType.Campaign, CampaignName = data.CampaignName, IsRunning = data.IsRunning }; } else if (data.DataType == DataType.Contact) { new_data = new Contact { Age = data.Age, FullName = data.FullName, Email = data.Email, PhoneNumber = data.PhoneNumber, DataType = DataType.Contact }; } if (new_data != null) { if (new_activity != null) { if (new_activity.Data is null) { new_activity.Data = new List <Data>(); } new_activity.Data.Add(new_data); } if (Data == null) { Data = new List <Data>(); } Data.Add(new_data); } } else if (CurrentNode != null) { var new_activity = CurrentNode.Activities.FirstOrDefault(a => a.Name == activity); if (data.DataType.Equals(DataType.Comment)) { new_data = new Comment { Messages = data.Messages, Topic = data.Topic, Emoji = data.Emoji, DataType = DataType.Comment, UserId = data.UserId, Request = data.Request }; } else if (data.DataType.Equals(DataType.Email)) { new_data = new Email { Contents = data.Contents, Subject = data.Subject, DataType = DataType.Email, UserId = data.UserId, Request = data.Request, Server = data.Server, Client = data.Client, Attach = data.Attach, ConfirmEmail = data.ConfirmEmail, ConfirmPass = data.ConfirmPass, From = data.From, To = data.To, IsSent = data.IsSent, }; } else if (data.DataType.Equals(DataType.TalentLeave)) { new_data = new TLeave { DataType = DataType.TalentLeave, UserId = data.UserId, Request = data.Request, AbsentName = data.AbsentName, ApproverName = data.ApproverName, DayOff = data.DayOff, IsDone = data.IsDone, Reason = data.Reason, IsReallyNotApproved = data.IsReallyNotApproved }; } if (new_data != null) { Data.Add(new_data); if (new_activity != null) { if (new_activity.Data is null) { new_activity.Data = new List <Data>(); } new_activity.Data.Add(new_data); } } } }
public ActionResult Delete(DataViewModel postModel) { RepositoryMapguide mapguide = new RepositoryMapguide(); RepositoryViews repository = new RepositoryViews(); Models.View view = repository.Get(postModel.View.ViewId); DataViewModel model = new DataViewModel { View = view, Form = view.Group.Forms.Single(m => m.FormId == postModel.Form.FormId), ItemId = postModel.ItemId, UniqueId = postModel.UniqueId }; model = mapguide.Get(model); mapguide.Delete(model); List<DataEmailModel> emails = new List<DataEmailModel>(); if (!String.IsNullOrEmpty(model.Form.Email)&&!String.IsNullOrEmpty(model.Form.ViewEmailToReceiverOnDelete)) { emails.Add(new DataEmailModel { Email = model.Form.Email, View = model.Form.ViewEmailToReceiverOnDelete }); } foreach (Field field in model.Form.Fields) { if (field.FieldTypeId == 7) { if (!string.IsNullOrEmpty(field.Data)) { if (email.IsMatch(field.Data)) { string emailView = field.Form.ViewEmailToSenderOnDelete; Field operationField = field.Form.Fields.FirstOrDefault(m => m.FieldTypeId == 13); if (!String.IsNullOrEmpty(emailView) && operationField != null) { if (!String.IsNullOrEmpty(operationField.Data)) { if (operationField.Data == "1" || operationField.Data == "True") { emails.Add(new DataEmailModel { Email = field.Data, View = emailView }); } } } } } } Selection selection = field.Selections.SingleOrDefault(m => m.Name == field.Data); if (selection != null && !String.IsNullOrEmpty(model.Form.ViewEmailToReceiverOnDelete)) { if (!String.IsNullOrEmpty(selection.Email)) { emails.Add(new DataEmailModel { Email = selection.Email, View = model.Form.ViewEmailToReceiverOnDelete }); } } } DataCreateModel dcm = new DataCreateModel() { Model = model, Emails = emails }; mapguide.SendEmails(dcm); Models.View endView = model.View.Group.Views.SingleOrDefault(m => m.ViewTypeId == 7); if (endView == null) { Models.View listUser = model.View.Group.Views.SingleOrDefault(m => m.ViewTypeId == 6); if (listUser == null) { Models.View listAll = model.View.Group.Views.SingleOrDefault(m => m.ViewTypeId == 5); if (listAll == null) { return View(model.View.Name, model); } else { return RedirectToAction("Index", new { id = listAll.ViewId, formId = model.Form.FormId }); } } else { return RedirectToAction("Index", new { id = listUser.ViewId, formId = model.Form.FormId }); } } else { return View(endView.Name, model); } }
public void SendEmails(DataCreateModel dataCreateModel) { IUserMailer userMailer = new UserMailer(); DataViewModel model = dataCreateModel.Model; if (Properties.Settings.Default.SendEmails) { SmtpClient client = new SmtpClient(); foreach (DataEmailModel email in dataCreateModel.Emails) { if (!String.IsNullOrEmpty(email.Email) && !String.IsNullOrEmpty(email.View)) { MailMessage m = userMailer.CreateMail(model, email.View); //m.BodyEncoding = System.Text.Encoding.UTF8; //m.SubjectEncoding = System.Text.Encoding.UTF8; int start = m.Body.IndexOf("<title>") + 7; int end = m.Body.IndexOf("</title>"); m.Subject = System.Net.WebUtility.HtmlDecode(m.Body.Substring(start, end - start).Trim(new char[] { ' ', '\r', '\n' })); m.To.Add(email.Email); client.Send(m); } } } }