public CranTaskInfo(CranTask tbl) { OrdersUser currentUser = OrdersUser.loadFromCache(HttpContext.Current.User.Identity.Name); CranNumber = tbl.CranNumber; Number = tbl.Number; NeedStartDate = tbl.NeedDateStart; NeedEndDate = tbl.NeedDateEnd; Comment = tbl.Comment; CranName = tbl.CranName; Author = OrdersUser.loadFromCache(tbl.Author).FullName; State = "Новая"; StateDB = tbl.State; Allowed = tbl.Allowed; Denied = tbl.Denied; Cancelled = tbl.Cancelled; Finished = tbl.Finished; AgreeComments = tbl.AgreeComment; canChange = (!Cancelled)&&(!Allowed) && (!Denied) && (!Finished) && tbl.Author.ToLower() == currentUser.Name.ToLower(); canCancel = (!Cancelled) && (!Denied) && (!Finished) && tbl.Author.ToLower() == currentUser.Name.ToLower(); canFinish = Allowed && (tbl.Author.ToLower() == currentUser.Name.ToLower() || currentUser.CanReviewCranTask || currentUser.CanReviewCranMZTask); canCheck = (currentUser.CanReviewCranTask && CranNumber>2 || currentUser.CanReviewCranMZTask && CranNumber<=2) && (!Finished) &&(!Cancelled); canComment = true; Manager = tbl.Manager; if (Denied) { State = "Отклонена"; canChange = false; AuthorAllow = OrdersUser.loadFromCache(tbl.AuthorAllow).FullName; } if (tbl.Allowed) { AuthorAllow = OrdersUser.loadFromCache(tbl.AuthorAllow).FullName; AllowDateStart = tbl.AllowedDateStart.Value; AllowDateEnd = tbl.AllowedDateEnd.Value; RealDateStart = tbl.RealDateStart.Value; RealDateEnd = tbl.RealDateEnd.Value; canChange = false; State = "Разрешена"; } if (tbl.Cancelled) { State = "Снята"; } if (tbl.Finished) { State = "Закрыта"; Finished = tbl.Finished; if (!string.IsNullOrEmpty(tbl.AuthorFinish)) AuthorFinish = OrdersUser.loadFromCache(tbl.AuthorFinish).FullName; } AgreeUsersIDS = tbl.AgreeUsersIDS; AgreeDict = getAgreeUsers(AgreeUsersIDS); AgreeUsersText = string.Join(", ", AgreeDict.Values); DateCreate = tbl.DateCreate; }
public static ReturnMessage AddComment(CranTaskInfo task, string comment) { Logger.info("Добавление комментария к заявке на работу крана", Logger.LoggerSource.server); try { string result = ""; OrdersUser currentUser = OrdersUser.loadFromCache(HttpContext.Current.User.Identity.Name); VotGESOrdersEntities eni = new VotGESOrdersEntities(); CranTask tbl = new CranTask(); CranTask tsk = (from t in eni.CranTask where t.Number == task.Number select t).FirstOrDefault(); if (tsk == null) { return new ReturnMessage(false, "Заявка не найдена"); } tbl = tsk; if (!string.IsNullOrEmpty(task.AgreeComments)) task.AgreeComments += "\r\n"; task.AgreeComments += String.Format("{2} {0}:\r\n {1}", currentUser.FullName, comment, DateTime.Now.ToString("dd.MM.yyyy HH:mm")); tbl.AgreeComment = task.AgreeComments; eni.SaveChanges(); string message = String.Format("Заявка на работу крана \"{0}\" №{1}. Комментарий", task.CranName, task.CranNumber); MailContext.sendCranTask(message, new CranTaskInfo(tbl)); if (Managers != null) { if (!Managers.Contains(task.Manager)) { Managers.Add(task.Manager); } } else ReadManagers(); return new ReturnMessage(true, "Комментарий добавлен"); } catch (Exception e) { Logger.info("Ошибка при создании/изменении заявки на работу крана " + e.ToString(), Logger.LoggerSource.server); return new ReturnMessage(false, "ошибка при добавлении комментария"); } }
/// <summary> /// Создание нового объекта CranTask. /// </summary> /// <param name="number">Исходное значение свойства Number.</param> /// <param name="cranNumber">Исходное значение свойства CranNumber.</param> /// <param name="author">Исходное значение свойства Author.</param> /// <param name="needDateStart">Исходное значение свойства NeedDateStart.</param> /// <param name="comment">Исходное значение свойства Comment.</param> /// <param name="allowed">Исходное значение свойства Allowed.</param> /// <param name="denied">Исходное значение свойства Denied.</param> /// <param name="needDateEnd">Исходное значение свойства NeedDateEnd.</param> /// <param name="manager">Исходное значение свойства Manager.</param> /// <param name="cranName">Исходное значение свойства CranName.</param> /// <param name="dateCreate">Исходное значение свойства DateCreate.</param> /// <param name="state">Исходное значение свойства State.</param> /// <param name="cancelled">Исходное значение свойства Cancelled.</param> /// <param name="finished">Исходное значение свойства Finished.</param> public static CranTask CreateCranTask(global::System.Int32 number, global::System.Int32 cranNumber, global::System.String author, global::System.DateTime needDateStart, global::System.String comment, global::System.Boolean allowed, global::System.Boolean denied, global::System.DateTime needDateEnd, global::System.String manager, global::System.String cranName, global::System.DateTime dateCreate, global::System.String state, global::System.Boolean cancelled, global::System.Boolean finished) { CranTask cranTask = new CranTask(); cranTask.Number = number; cranTask.CranNumber = cranNumber; cranTask.Author = author; cranTask.NeedDateStart = needDateStart; cranTask.Comment = comment; cranTask.Allowed = allowed; cranTask.Denied = denied; cranTask.NeedDateEnd = needDateEnd; cranTask.Manager = manager; cranTask.CranName = cranName; cranTask.DateCreate = dateCreate; cranTask.State = state; cranTask.Cancelled = cancelled; cranTask.Finished = finished; return cranTask; }
public static ReturnMessage CreateCranTask(CranTaskInfo task) { Logger.info("Создание/изменение заявки на работу крана", Logger.LoggerSource.server); try { string result = ""; string message = String.Format("Заявка на работу крана \"{0}\" №", task.CranName); OrdersUser currentUser = OrdersUser.loadFromCache(HttpContext.Current.User.Identity.Name); VotGESOrdersEntities eni = new VotGESOrdersEntities(); CranTask tbl = new CranTask(); if (task.init) { Logger.info("Определение номера заявки на кран", Logger.LoggerSource.server); tbl.State = "new"; CranTask tsk = (from t in eni.CranTask orderby t.Number descending select t).FirstOrDefault(); task.DateCreate = DateTime.Now; if (tsk != null) { task.Number = tsk.Number + 1; } else { task.Number = 1; } tbl.Allowed = false; tbl.Denied = false; tbl.Author = currentUser.Name; tbl.DateCreate = task.DateCreate; task.Author = currentUser.FullName; eni.CranTask.AddObject(tbl); result = "Заявка на кран успешно создана"; } else { CranTask tsk = (from t in eni.CranTask where t.Number == task.Number select t).FirstOrDefault(); if (tsk == null) { return new ReturnMessage(false, "Заявка не найдена"); } tbl = tsk; result = "Заявка на кран успешно изменена"; } message += task.Number + ". "; if ((task.NeedEndDate <= task.NeedStartDate) || (task.Allowed && (task.AllowDateEnd <= task.AllowDateStart))) { return new ReturnMessage(false, "Дата окончания заявки больше чем дата начала"); } tbl.Number = task.Number; tbl.CranName = task.CranName; tbl.AgreeComment = task.AgreeComments; tbl.NeedDateStart = task.NeedStartDate; tbl.NeedDateEnd = task.NeedEndDate; tbl.Comment = task.Comment; tbl.Manager = task.Manager; tbl.CranNumber = task.CranNumber; if (task.AgreeDict != null) tbl.AgreeUsersIDS = string.Join(";", task.AgreeDict.Keys); if (task.Finished) { tbl.State = "finished"; result = "Заявка на кран завершена"; tbl.RealDateStart = task.RealDateStart; tbl.RealDateEnd = task.RealDateEnd; tbl.AuthorFinish = currentUser.Name; tbl.Finished = true; message += " Заявка завершена"; } else if (task.Allowed) { tbl.AllowedDateStart = task.AllowDateStart; tbl.AllowedDateEnd = task.AllowDateEnd; tbl.RealDateStart = task.AllowDateStart; tbl.RealDateEnd = task.AllowDateEnd; tbl.Denied = false; tbl.Allowed = true; tbl.Cancelled = false; tbl.State = "allowed"; task.AuthorAllow = currentUser.FullName; result = "Заявка на кран разрешена"; message += " Заявка разрешена"; } else if (task.Denied) { tbl.AllowedDateStart = null; tbl.AllowedDateEnd = null; tbl.RealDateEnd = null; tbl.RealDateStart = null; tbl.Allowed = false; tbl.Denied = true; tbl.Cancelled = false; tbl.State = "denied"; task.AuthorAllow = currentUser.FullName; result = "Заявка на кран отклонена"; message += " Заявка отклонена"; } else if (task.Cancelled) { tbl.State = "cancelled"; tbl.Denied = false; tbl.Allowed = false; tbl.Cancelled = true; tbl.AuthorAllow = null; tbl.AllowedDateStart = null; tbl.AllowedDateEnd = null; tbl.RealDateEnd = null; tbl.RealDateStart = null; result = "Заявка на кран снята"; message += " Заявка снята"; } else if (!task.init) { message += " Заявка изменена"; } if (task.Allowed || task.Denied) { tbl.AuthorAllow = currentUser.Name; } eni.SaveChanges(); MailContext.sendCranTask(message, new CranTaskInfo(tbl)); if (Managers != null) { if (!Managers.Contains(task.Manager)) { Managers.Add(task.Manager); } } else ReadManagers(); return new ReturnMessage(true, result); } catch (Exception e) { Logger.info("Ошибка при создании/изменении заявки на работу крана " + e.ToString(), Logger.LoggerSource.server); return new ReturnMessage(false, "Ошибка при создании/изменении заявки на работу крана"); } }
/// <summary> /// Устаревший метод для добавления новых объектов в набор EntitySet CranTask. Взамен можно использовать метод .Add связанного свойства ObjectSet<T>. /// </summary> public void AddToCranTask(CranTask cranTask) { base.AddObject("CranTask", cranTask); }