Example #1
0
        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);
             }
         }
     }
 }