public Task UpdateExplanation(Task model, Guid recordId) { tsk_tasks task = new tsk_tasks(); task = this.GetTask(recordId); DateTime lclDateTime = BaseClasses.BaseFunctions.ToLocalTime(DateTime.UtcNow, BaseDB.SessionContext.Current.ActiveUser.TimeZoneInfoUser.Id); if (model.new_explanation != null && model.new_explanation.Trim() != "") { task.explanations = "~~~~ " + SessionContext.Current.ActiveUser.Name + " " + SessionContext.Current.ActiveUser.Surname + " " + lclDateTime + " ~~~~\n" + model.new_explanation + "\n\r" + task.explanations; } this.Kaydet(); GenelRepository gnlDB = RepositoryManager.GetRepository <GenelRepository>(); #region Notification Ekleniyor string title = Resources.GlobalResource.task_explanation_added; DateTime localDateTime = BaseClasses.BaseFunctions.ToLocalTime(DateTime.UtcNow, BaseDB.SessionContext.Current.ActiveUser.TimeZoneInfoUser.Id); string body = string.Format(Resources.GlobalResource.task_explanation_added_body, task.task_name, localDateTime); gnlDB.AddNotification(recordId, task.assigned_user_id, (int)Enums.NotificationType.Normal, (int)Enums.NotificationModuleType.Task, title, body); gnlDB.Kaydet(); gnlDB.AddNotification(recordId, task.task_user_id, (int)Enums.NotificationType.Normal, (int)Enums.NotificationModuleType.Task, title, body); gnlDB.Kaydet(); if (task.assigned_user_id != task.task_user_id) { TaskMailSend(task.assigned_user_id, task.order_id.ToString(), task.task_name, task.task_id, "Task Explanation Added", model.new_explanation, "", "2", SessionContext.Current.ActiveUser.Name + " " + SessionContext.Current.ActiveUser.Surname); TaskMailSend(task.task_user_id, task.order_id.ToString(), task.task_name, task.task_id, "Task Explanation Added", model.new_explanation, "", "2", SessionContext.Current.ActiveUser.Name + " " + SessionContext.Current.ActiveUser.Surname); } else { TaskMailSend(task.assigned_user_id, task.order_id.ToString(), task.task_name, task.task_id, "Task Explanation Added", model.new_explanation, "", "2", SessionContext.Current.ActiveUser.Name + " " + SessionContext.Current.ActiveUser.Surname); } #endregion return(model); }
public void TaskMailSend(Guid user_id, string order_id, string task_name, Guid task_id, string title, string body, string task_status_name, string type, string user_name_surname = "") { #region Mail Gönderiliyor GenelRepository gnlDB = RepositoryManager.GetRepository <GenelRepository>(); gnl_users userMail = gnlDB.GetUser(user_id); string nameSurnameMail = ""; if (userMail != null) { nameSurnameMail = userMail.name + " " + userMail.surname; } DateTime localDateTimeMail = BaseClasses.BaseFunctions.ToLocalTime(DateTime.UtcNow, BaseDB.SessionContext.Current.ActiveUser.TimeZoneInfoUser.Id); string mailBody = ""; if (type == "1") { mailBody = new StreamReader(AppDomain.CurrentDomain.BaseDirectory + @"Templates\TaskStatusChangeTemplate.html").ReadToEnd(); } else if (type == "2") { mailBody = new StreamReader(AppDomain.CurrentDomain.BaseDirectory + @"Templates\TaskNewExplanationTemplate.html").ReadToEnd(); } else if (type == "99") { mailBody = new StreamReader(AppDomain.CurrentDomain.BaseDirectory + @"Templates\TaskExpireEndDate.html").ReadToEnd(); } if (type == "99") { tsk_tasks task = new tsk_tasks(); task = this.GetTask(task_id); gnl_users taskUser = gnlDB.GetUser(task.task_user_id); DateTime localDateTimeMailExpireTask = BaseClasses.BaseFunctions.ToLocalTime(task.end_date, BaseDB.SessionContext.Current.ActiveUser.TimeZoneInfoUser.Id); mailBody = mailBody.Replace("%%task_end_date%%", localDateTimeMailExpireTask.ToString()); mailBody = mailBody.Replace("%%task_user_name_surname%%", taskUser.name + " " + taskUser.surname); } mailBody = mailBody.Replace("%%company_name%%", Dcm.Source.GlobalHelper.GetCompanyName()); mailBody = mailBody.Replace("%%ad%%", nameSurnameMail); mailBody = mailBody.Replace("%%task_no%%", "#" + order_id.PadLeft(5, '0')); string applicationPath = ""; if (System.Web.HttpContext.Current.Request.ApplicationPath == "/") { applicationPath = "http://" + System.Web.HttpContext.Current.Request.ServerVariables["HTTP_HOST"] + "/"; } else { applicationPath = "http://" + System.Web.HttpContext.Current.Request.ServerVariables["HTTP_HOST"] + "/" + System.Web.HttpContext.Current.Request.ApplicationPath + "/"; } mailBody = mailBody.Replace("%%path_url%%", applicationPath); mailBody = mailBody.Replace("%%task_name%%", task_name); mailBody = mailBody.Replace("%%task_date%%", localDateTimeMail.ToString()); mailBody = mailBody.Replace("%%task_status_name%%", task_status_name); mailBody = mailBody.Replace("%%task_body%%", body); mailBody = mailBody.Replace("%%user_name_surname%%", user_name_surname); mailBody = mailBody.Replace("%%task_link%%", applicationPath + "Task/Tasks?RecordId=" + task_id + "&MenuId=" + Dcm.Source.GlobalHelper.Encrypt("149")); #region mail gönderiliyor if (BaseClasses.BaseFunctions.getInstance().IsEmailValid(userMail.email.Trim())) { BaseClasses.BaseFunctions.getInstance().SendSMTPMail(userMail.email.Trim(), "", title, mailBody, "", null, "", "genel"); } #endregion #endregion }
public Task UpdateTaskStatus(Task model, Guid recordId, int statusId, bool active = true) { tsk_tasks task = new tsk_tasks(); task = this.GetTask(recordId); bool statusChanged = false; if (statusId != task.task_status_id) { statusChanged = true; } task.task_status_id = statusId; task.is_task_sent = true; task.is_active = active; task.updated_at = DateTime.UtcNow; task.updated_by = SessionContext.Current.ActiveUser.UserUid; this.Kaydet(); if (statusChanged) { this.AddTaskHistory(task); GenelRepository gnlDB = RepositoryManager.GetRepository <GenelRepository>(); #region Notification Ekleniyor if (statusId == (int)Enums.TaskStatus.Gonderildi) { #region Notification Statu Gönderildi string title = Resources.GlobalResource.new_task_notification; gnl_users user = gnlDB.GetUser(task.task_user_id); string nameSurname = ""; if (user != null) { nameSurname = user.name + " " + user.surname; } DateTime localDateTime = BaseClasses.BaseFunctions.ToLocalTime(DateTime.UtcNow, BaseDB.SessionContext.Current.ActiveUser.TimeZoneInfoUser.Id); string body = string.Format(Resources.GlobalResource.new_task_notification_body, task.task_name, localDateTime, nameSurname); gnlDB.AddNotification(recordId, task.assigned_user_id, (int)Enums.NotificationType.Normal, (int)Enums.NotificationModuleType.Task, title, body); gnlDB.Kaydet(); TaskMailSend(task.assigned_user_id, task.order_id.ToString(), task.task_name, task.task_id, "Task Status Change", "", "Sent", "1"); #endregion } else if (Convert.ToInt32(model.task_status_id) == (int)Enums.TaskStatus.Gonderildi) { #region Notification Statu Gönderildi string title = Resources.GlobalResource.new_task_notification; gnl_users user = gnlDB.GetUser(task.task_user_id); string nameSurname = ""; if (user != null) { nameSurname = user.name + " " + user.surname; } DateTime localDateTime = BaseClasses.BaseFunctions.ToLocalTime(DateTime.UtcNow, BaseDB.SessionContext.Current.ActiveUser.TimeZoneInfoUser.Id); string body = string.Format(Resources.GlobalResource.new_task_notification_body, task.task_name, localDateTime, nameSurname); gnlDB.AddNotification(recordId, task.assigned_user_id, (int)Enums.NotificationType.Normal, (int)Enums.NotificationModuleType.Task, title, body); gnlDB.Kaydet(); TaskMailSend(task.assigned_user_id, task.order_id.ToString(), task.task_name, task.task_id, "Task Status Change", "", "Sent", "1"); #endregion } else { #region Notification Statu Değişikliği if (Convert.ToInt32(model.task_status_id) == (int)Enums.TaskStatus.Calismaya_Baslandi) { string title = Resources.GlobalResource.task_status_notification; DateTime localDateTime = BaseClasses.BaseFunctions.ToLocalTime(DateTime.UtcNow, BaseDB.SessionContext.Current.ActiveUser.TimeZoneInfoUser.Id); string body = string.Format(Resources.GlobalResource.task_gonderildi_status_notification_body, task.task_name, Resources.GlobalResource.task_status_calismaya_baslandi, localDateTime); gnlDB.AddNotification(recordId, task.assigned_user_id, (int)Enums.NotificationType.Normal, (int)Enums.NotificationModuleType.Task, title, body); gnlDB.Kaydet(); gnlDB.AddNotification(recordId, task.task_user_id, (int)Enums.NotificationType.Normal, (int)Enums.NotificationModuleType.Task, title, body); gnlDB.Kaydet(); if (task.assigned_user_id != task.task_user_id) { TaskMailSend(task.assigned_user_id, task.order_id.ToString(), task.task_name, task.task_id, "Task Status Change", "", "Work Started", "1"); TaskMailSend(task.task_user_id, task.order_id.ToString(), task.task_name, task.task_id, "Task Status Change", "", "Work Started", "1"); } else { TaskMailSend(task.assigned_user_id, task.order_id.ToString(), task.task_name, task.task_id, "Task Status Change", "", "Work Started", "1"); } } else if (Convert.ToInt32(model.task_status_id) == (int)Enums.TaskStatus.Tamamlandi) { string title = Resources.GlobalResource.task_status_notification; DateTime localDateTime = BaseClasses.BaseFunctions.ToLocalTime(DateTime.UtcNow, BaseDB.SessionContext.Current.ActiveUser.TimeZoneInfoUser.Id); string body = string.Format(Resources.GlobalResource.task_gonderildi_status_notification_body, task.task_name, Resources.GlobalResource.task_status_tamamlandi, localDateTime); task.task_completed_by = SessionContext.Current.ActiveUser.UserUid; task.task_completed_date = DateTime.UtcNow; this.Kaydet(); gnlDB.AddNotification(recordId, task.assigned_user_id, (int)Enums.NotificationType.Normal, (int)Enums.NotificationModuleType.Task, title, body); gnlDB.Kaydet(); gnlDB.AddNotification(recordId, task.task_user_id, (int)Enums.NotificationType.Normal, (int)Enums.NotificationModuleType.Task, title, body); gnlDB.Kaydet(); if (task.assigned_user_id != task.task_user_id) { TaskMailSend(task.assigned_user_id, task.order_id.ToString(), task.task_name, task.task_id, "Task Status Change", "", "Finished", "1"); TaskMailSend(task.task_user_id, task.order_id.ToString(), task.task_name, task.task_id, "Task Status Change", "", "Finished", "1"); } else { TaskMailSend(task.assigned_user_id, task.order_id.ToString(), task.task_name, task.task_id, "Task Status Change", "", "Finished", "1"); } } else if (Convert.ToInt32(model.task_status_id) == (int)Enums.TaskStatus.Reddedildi) { string title = Resources.GlobalResource.task_status_notification; DateTime localDateTime = BaseClasses.BaseFunctions.ToLocalTime(DateTime.UtcNow, BaseDB.SessionContext.Current.ActiveUser.TimeZoneInfoUser.Id); string body = string.Format(Resources.GlobalResource.task_gonderildi_status_notification_body, task.task_name, Resources.GlobalResource.task_status_reddedildi, localDateTime); gnlDB.AddNotification(recordId, task.assigned_user_id, (int)Enums.NotificationType.Normal, (int)Enums.NotificationModuleType.Task, title, body); gnlDB.Kaydet(); gnlDB.AddNotification(recordId, task.task_user_id, (int)Enums.NotificationType.Normal, (int)Enums.NotificationModuleType.Task, title, body); gnlDB.Kaydet(); if (task.assigned_user_id != task.task_user_id) { TaskMailSend(task.assigned_user_id, task.order_id.ToString(), task.task_name, task.task_id, "Task Status Change", "", "Rejected", "1"); TaskMailSend(task.task_user_id, task.order_id.ToString(), task.task_name, task.task_id, "Task Status Change", "", "Rejected", "1"); } else { TaskMailSend(task.assigned_user_id, task.order_id.ToString(), task.task_name, task.task_id, "Task Status Change", "", "Rejected", "1"); } } #endregion } #endregion } return(model); }