コード例 #1
0
        public static void sendCranTask(string header, CranTaskInfo task)
        {
            try {
                IQueryable    users      = OrdersUser.getAllUsers();
                List <string> mailToList = new List <string>();


                foreach (OrdersUser user in users)
                {
                    if (
                        (user.SendAllCranTask) ||
                        (task.SelAuthor.ToLower() == user.Name.ToLower()) ||
                        (task.TaskState == CranTaskState.created && user.SendAllCreateCranTask)
                        )
                    {
                        if (user.Mails.Count > 0)
                        {
                            foreach (string mail in user.Mails)
                            {
                                if (!String.IsNullOrEmpty(mail) && !mailToList.Contains(mail.ToLower()))
                                {
                                    mailToList.Add(mail.ToLower());
                                }
                            }
                        }
                    }
                }
                try {
                    mailToList.Add("*****@*****.**");
                } catch { }

                Attachment attach = null;

                /*try {
                 *      MemoryStream stream = new MemoryStream();
                 *      StreamWriter writer = new StreamWriter(stream);
                 *      writer.Write(CranTaskInfo.getTaskPrintHTML(task));
                 *      writer.Flush();
                 *      stream.Position = 0;
                 *
                 *      attach = new Attachment(stream, String.Format("Заявка{0}.xls", task.Number), "application/vnd.ms-excel");
                 * }
                 * catch (Exception e) {
                 *      Logger.info(e.ToString(), Logger.LoggerSource.server);
                 * }*/


                string message = CranTaskInfo.getTaskHTML(task);

                //message += String.Format("<h3><a href='{0}'>Перейти к списку заявок</a></h3>", String.Format("http://{0}:{1}/#/CransPage", HttpContext.Current.Request.Url.Host, HttpContext.Current.Request.Url.Port));

                if (mailToList.Count > 0)
                {
                    SendMailLocal(smtpServer, smtpPort, smtpUser, smtpPassword, smtpDomain, smtpFrom, mailToList, header, message, true, attach);
                }
            }
            catch (Exception e) {
                Logger.error(String.Format("Ошибка при отправке почты: {0}", e.ToString()), Logger.LoggerSource.server);
            }
        }
コード例 #2
0
		protected void refreshSelObject() {
			OrdersUser selectedUser=gridUsers.SelectedItem as OrdersUser;
			cancelEdit();
			if (selectedUser != null) {
				CurrentUser = selectedUser;				
			}
		}
コード例 #3
0
        public static void sendOrdersList(string header, List <Order> orders)
        {
            try {
                IQueryable    users      = OrdersUser.getAllUsers();
                List <string> mailToList = new List <string>();

                OrdersUser CurrentUser = OrdersUser.getCurrentUser();
                foreach (string mail in CurrentUser.Mails)
                {
                    if (!String.IsNullOrEmpty(mail))
                    {
                        mailToList.Add(mail);
                    }
                }

                bool isFirst = true;
                if (mailToList.Count > 0)
                {
                    string message = "";
                    foreach (Order order in orders)
                    {
                        message += OrderView.getOrderHTML(order, isFirst) + "<hr/>";
                        isFirst  = false;
                    }
                    //SendMailLocal("mx-votges-021.corp.gidroogk.com", 25, "", "", "", "*****@*****.**", mailToList, header, message,true);
                    SendMailLocal(smtpServer, smtpPort, smtpUser, smtpPassword, smtpDomain, smtpFrom, mailToList, header, message, true);
                }
            }
            catch (Exception e) {
                Logger.error(String.Format("Ошибка при отправке почты: {0}", e.ToString()), Logger.LoggerSource.server);
            }
        }
コード例 #4
0
        public void RegisterChangeUser(OrdersUser newUser)
        {
            Logger.info("Пользователь изменил пользователя", Logger.LoggerSource.usersContext);
            try {
                if (!CurrentUser.AllowEditUsers)
                {
                    throw new Exception("У вас нет прав редактировать пользователей");
                }
                VotGESOrdersEntities context = new VotGESOrdersEntities();

                IQueryable <Users> users = (from u in context.Users where u.userID == newUser.UserID select u);
                Users user = null;
                if (users.Count() == 0)
                {
                    Logger.info("===Новый пользователь", Logger.LoggerSource.usersContext);
                    user      = new Users();
                    user.name = newUser.Name;
                    context.Users.AddObject(user);
                }
                else
                {
                    user = users.First();
                }

                user.fullName              = newUser.FullName;
                user.mail                  = newUser.Mail;
                user.sendAgreeMail         = newUser.SendAgreeMail;
                user.sendAllMail           = newUser.SendAllMail;
                user.sendCreateMail        = newUser.SendCreateMail;
                user.sendAllAgreeMail      = newUser.SendAllAgreeMail;
                user.sendAllCreateMail     = newUser.SendAllCreateMail;
                user.allowChangeOrder      = newUser.AllowChangeOrder;
                user.allowCreateOrder      = newUser.AllowCreateOrder;
                user.allowCreateCrashOrder = newUser.AllowCreateCrashOrder;
                user.allowEditUsers        = newUser.AllowEditUsers;
                user.allowEditOrders       = newUser.AllowEditOrders;
                user.allowEditTree         = newUser.AllowEditTree;
                user.allowAgreeOrders      = newUser.AllowAgreeOrders;
                user.allowReviewOrder      = newUser.AllowReviewOrder;
                user.canReviewCranTask     = newUser.CanReviewCranTask;
                user.canFinishCranTask     = newUser.CanFinishCranTask;
                user.canCreateCranTask     = newUser.CanCreateCranTask;

                user.sendAllCreateCranTask = newUser.SendAllCreateCranTask;

                user.sendAllCranTask = newUser.SendAllCranTask;
                user.AddLogins       = newUser.AddLogins;
                user.AddFinishLogins = newUser.AddFinishLogins;
                context.SaveChanges();

                newUser.UserID = user.userID;
                OrdersUser.init();

                Logger.info("===Сохранено", Logger.LoggerSource.usersContext);
            } catch (Exception e) {
                Logger.error(String.Format("===Ошибка при изменении пользователя: {0}", e), Logger.LoggerSource.usersContext);

                throw new Exception("Ошибка при изменении пользователя");
            }
        }
コード例 #5
0
        public void RegisterDeleteUser(OrdersUser newUser)
        {
            Logger.info("Пользователь удалил пользователя", Logger.LoggerSource.usersContext);
            try {
                if (!CurrentUser.AllowEditUsers)
                {
                    throw new Exception("У вас нет прав редактировать пользователей");
                }
                VotGESOrdersEntities context = new VotGESOrdersEntities();

                IQueryable <Users> users = (from u in context.Users where u.name.ToLower() == newUser.Name.ToLower() select u);
                Users user = null;
                user = users.First();

                context.DeleteObject(user);

                context.SaveChanges();
                OrdersUser.init();
                Logger.info("===Сохранено", Logger.LoggerSource.usersContext);
            } catch (Exception e) {
                Logger.error(String.Format("===Ошибка при удалении пользователя: {0}", e), Logger.LoggerSource.usersContext);

                throw new Exception("Ошибка при удалении пользователя. Возможно на пользователя ссылаются заявки");
            }
        }
コード例 #6
0
		public void RegisterChangeUser(OrdersUser newUser) {
			Logger.info("Пользователь изменил пользователя", Logger.LoggerSource.usersContext);
			try {
				if (!CurrentUser.AllowEditUsers) {
					throw new DomainException("У вас нет прав редактировать пользователей");
				}
				VotGESOrdersEntities context=new VotGESOrdersEntities();

				IQueryable<Users> users=(from u in context.Users where u.userID == newUser.UserID select u);
				Users user=null;
				if (users.Count()==0) {
					Logger.info("===Новый пользователь", Logger.LoggerSource.usersContext);
					user = new Users();
					user.name = newUser.Name;
					context.Users.AddObject(user);
				} else {
					user = users.First();
				}

				user.fullName = newUser.FullName;
				user.mail = newUser.Mail;
				user.sendAgreeMail = newUser.SendAgreeMail;
				user.sendAllMail = newUser.SendAllMail;
				user.sendCreateMail = newUser.SendCreateMail;
				user.sendAllAgreeMail = newUser.SendAllAgreeMail;
				user.sendAllCreateMail = newUser.SendAllCreateMail;
				user.allowChangeOrder = newUser.AllowChangeOrder;
				user.allowCreateOrder = newUser.AllowCreateOrder;
				user.allowCreateCrashOrder = newUser.AllowCreateCrashOrder;
				user.allowEditUsers = newUser.AllowEditUsers;
				user.allowEditOrders = newUser.AllowEditOrders;
				user.allowEditTree = newUser.AllowEditTree;
				user.allowAgreeOrders = newUser.AllowAgreeOrders;
				user.allowReviewOrder = newUser.AllowReviewOrder;
				user.canReviewCranTask = newUser.CanReviewCranTask;
				user.canReviewCranMZTask = newUser.CanReviewCranMZTask;
				user.canCreateCranTask = newUser.CanCreateCranTask;
				user.canAgreeCranTask = newUser.CanAgreeCranTask;
				user.sendAgreeCranTask = newUser.SendAgreeCranTask;
				user.sendAllCreateCranTask = newUser.SendAllCreateCranTask;
				user.sendAllAgreeCranTask = newUser.SendAllAgreeCranTask;
				user.sendAllCranTask = newUser.SendAllCranTask;
				user.sendOnlyMZCranTask = newUser.SendOnlyMZCranTask;
				
				context.SaveChanges();

				newUser.UserID = user.userID;
				OrdersUser.init();

				Logger.info("===Сохранено", Logger.LoggerSource.usersContext);

			} catch (Exception e) {
				Logger.error(String.Format("===Ошибка при изменении пользователя: {0}", e), Logger.LoggerSource.usersContext);
				if (e is DomainException) {
					throw e;
				}
				throw new DomainException("Ошибка при изменении пользователя");
			}
		}
コード例 #7
0
ファイル: Order.cs プロジェクト: rj128x/VotGESOrders2020
 public Order()
 {
     OrderNumber       = -1;
     OrderDateCreate   = DateTime.Now;
     UserCreateOrderID = OrdersUser.getCurrentUser().UserID;
     ParentOrderNumber = 0;
     ChildOrderNumber  = 0;
     OrderState        = OrderStateEnum.created;
     OrderCreated      = true;
 }
コード例 #8
0
        public static void sendMail(string header, Order order, bool isNewOrder, bool expired, Order prevOrder = null)
        {
            /*if (HttpContext.Current.Request.Url.Port == 8072 || HttpContext.Current.Request.Url.Port == 8090)
             *      return;*/
            try {
                IQueryable    users      = OrdersUser.getAllUsers();
                List <string> mailToList = new List <string>();

                foreach (OrdersUser user in users)
                {
                    if (

                        /*user.SendAllAgreeMail && order.AgreeUsers.Contains(user) && !mailToList.Contains(user.Mail) && !onlyAuthor ||
                         *                      user.SendAllMail && !mailToList.Contains(user.Mail) ||
                         *                      user.SendCreateMail && order.UserCreateOrderID == user.UserID && !mailToList.Contains(user.Mail) ||
                         *                      onlyAuthor && order.UserCreateOrderID == user.UserID && !mailToList.Contains(user.Mail) ||
                         *                      isNewOrder && (user.SendAllCreateMail || user.SendAgreeMail && order.AgreeUsers.Contains(user)) && !mailToList.Contains(user.Mail) && !onlyAuthor*/
                        user.SendAllMail && !mailToList.Contains(user.Mail) ||
                        isNewOrder && (user.SendAllCreateMail || order.UserCreateOrderID == user.UserID || user.SendAgreeMail && order.AgreeUsers.Contains(user)) && !mailToList.Contains(user.Mail) ||
                        expired && (order.UserCreateOrderID == user.UserID || user.SendAllCreateMail) && !mailToList.Contains(user.Mail) ||
                        order.FullOrderObjectInfo.Contains("Кран") && order.FullOrderObjectInfo.IndexOf("Кран") < 3 && user.Name.ToUpper() == "CRAN" && !mailToList.Contains(user.Mail) &&
                        (isNewOrder || order.OrderState == OrderStateEnum.created || order.OrderState == OrderStateEnum.opened || order.OrderState == OrderStateEnum.completed)

                        )
                    {
                        if (user.Mails.Count > 0)
                        {
                            foreach (string mail in user.Mails)
                            {
                                if (!String.IsNullOrEmpty(mail))
                                {
                                    mailToList.Add(mail);
                                }
                            }
                        }
                    }
                }

                string message = OrderView.getOrderHTML(order);
                if (prevOrder != null)
                {
                    message += "<hr/>" + OrderView.getOrderHTML(prevOrder, false);
                }
                //message += String.Format("<h3><a href='{0}'>Перейти к списку заявок</a></h3>", String.Format("http://{0}:{1}", HttpContext.Current.Request.Url.Host, HttpContext.Current.Request.Url.Port));

                if (mailToList.Count > 0)
                {
                    //SendMailLocal("mx-votges-021.corp.gidroogk.com", 25, "", "", "", "*****@*****.**", mailToList, header, message, true);
                    SendMailLocal(smtpServer, smtpPort, smtpUser, smtpPassword, smtpDomain, smtpFrom, mailToList, header, message, true);
                }
            }
            catch (Exception e) {
                Logger.error(String.Format("Ошибка при отправке почты: {0}", e.ToString()), Logger.LoggerSource.server);
            }
        }
コード例 #9
0
ファイル: OrdersUser.cs プロジェクト: rj128x/VotGESOrders2020
 public void loadFromDB(string userName)
 {
     ordersUser            = OrdersUser.loadFromCache(userName);
     FullName              = ordersUser.FullName;
     AllowCreateOrder      = ordersUser.AllowCreateOrder;
     AllowCreateCrashOrder = ordersUser.AllowCreateCrashOrder;
     AllowEditTree         = ordersUser.AllowEditTree;
     AllowEditUsers        = ordersUser.AllowEditUsers;
     AllowCreateCranTask   = ordersUser.CanCreateCranTask;
     UserID = ordersUser.UserID;
 }
コード例 #10
0
ファイル: Order.cs プロジェクト: rj128x/VotGESOrders2020
        public void checkPremissions(Orders dbOrder, OrdersUser currentUser)
        {
            OrderCreated               = dbOrder.orderCreated;
            OrderReviewed              = dbOrder.orderReviewed;
            OrderOpened                = dbOrder.orderOpened;
            OrderClosed                = dbOrder.orderClosed;
            OrderCanceled              = dbOrder.orderCanceled;
            OrderCompleted             = dbOrder.orderCompleted;
            OrderCompletedWithoutEnter = dbOrder.orderCompletedWithoutEnter;
            OrderExtended              = dbOrder.orderExtended;
            OrderAskExtended           = dbOrder.orderAskExtended;
            OrderIsExtend              = dbOrder.orderIsExtend;
            OrderIsFixErrorEnter       = dbOrder.orderIsFixErrorEnter;

            OrderState = (OrderStateEnum)Enum.Parse(typeof(OrderStateEnum), dbOrder.orderState, true);
            OrderType  = (OrderTypeEnum)Enum.Parse(typeof(OrderTypeEnum), dbOrder.orderType, true);

            OrderCanceledWithoutReview = OrderCanceled && !OrderReviewed;
            OrderBanned = OrderState == OrderStateEnum.banned;

            int        creator     = dbOrder.userCreateOrderID;
            OrdersUser CreatorUser = OrdersUser.loadFromCache(creator);

            IsCurrentUser    = currentUser.UserID == creator || (CreatorUser.AddFinishLogins.ToLower() + ";").Contains(currentUser.Name.ToLower() + ";");
            AllowReviewOrder = currentUser.AllowReviewOrder && OrderState == OrderStateEnum.created;
            AllowOpenOrder   = currentUser.AllowChangeOrder && OrderState == OrderStateEnum.accepted;
            AllowCloseOrder  = (IsCurrentUser && OrderState == OrderStateEnum.opened) ||
                               currentUser.AllowChangeOrder && OrderState == OrderStateEnum.opened;
            AllowCompleteWithoutEnterOrder = currentUser.AllowChangeOrder && currentUser.AllowCreateCrashOrder && OrderState == OrderStateEnum.closed;
            AllowCompleteOrder             = currentUser.AllowChangeOrder && OrderState == OrderStateEnum.closed;
            AllowChangeOrder = (IsCurrentUser || currentUser.AllowChangeOrder) && OrderState == OrderStateEnum.created ||
                               (currentUser.AllowChangeOrder && (OrderType == OrderTypeEnum.no || OrderType == OrderTypeEnum.crash) && OrderState == OrderStateEnum.opened);
            AllowExtendOrder = (currentUser.AllowChangeOrder || currentUser.UserID == creator) && OrderState == OrderStateEnum.opened;
            AllowCancelOrder = ((IsCurrentUser || currentUser.AllowChangeOrder) &&
                                (OrderState == OrderStateEnum.created || OrderState == OrderStateEnum.accepted || orderState == OrderStateEnum.opened && OrderIsExtend)) ||
                               currentUser.AllowChangeOrder && OrderState == OrderStateEnum.opened && orderIsFixErrorEnter;


            string[] ids = dbOrder.agreeUsersIDS.Split(';');
            AllowCommentOrder = true;


            AllowRejectReviewOrder = (currentUser.AllowEditOrders || currentUser.AllowReviewOrder) &&
                                     (OrderState == OrderStateEnum.accepted || OrderState == OrderStateEnum.banned && !OrderIsExtend ||
                                      OrderState == OrderStateEnum.opened && OrderIsExtend);
            AllowRejectOpenOrder = (currentUser.AllowEditOrders || currentUser.AllowChangeOrder) && OrderState == OrderStateEnum.opened && !OrderIsExtend && !OrderIsFixErrorEnter &&
                                   !OrderExtended && !OrderAskExtended &&
                                   OrderType != OrderTypeEnum.crash && OrderType != OrderTypeEnum.no;
            AllowRejectCloseOrder    = (currentUser.AllowEditOrders || currentUser.AllowChangeOrder) && OrderState == OrderStateEnum.closed;
            AllowRejectCancelOrder   = (currentUser.AllowEditOrders || currentUser.AllowChangeOrder) && OrderState == OrderStateEnum.canceled && !OrderIsExtend && !OrderIsFixErrorEnter;
            AllowRejectCompleteOrder = (currentUser.AllowEditOrders || currentUser.AllowChangeOrder) && OrderState == OrderStateEnum.completed;
            AllowEditOrder           = currentUser.AllowEditOrders;
        }
コード例 #11
0
ファイル: OrdersUser.cs プロジェクト: rj128x/VotGESOrders2013
		public static OrdersUser loadFromCache(int userID) {
			try {
				OrdersUser user=allUsers.AsQueryable().First(u => u.UserID == userID);
				return user;
			} catch (Exception e) {
				OrdersUser user=new OrdersUser();
				user.FullName = String.Format("{0}", userID);
				user.Name = userID.ToString();
				user.UserID = -1;
				//Logger.error(String.Format("Ошибка при получении краткой информации о пользователе из БД: {0}, {1}", userID, e), Logger.LoggerSource.server);
				return user;
			}
		}
コード例 #12
0
ファイル: OrdersUser.cs プロジェクト: rj128x/VotGESOrders2020
        public static OrdersUser getFromDB(Users userDB)
        {
            try
            {
                OrdersUser user = new OrdersUser();
                user.UserID                = userDB.userID;
                user.Name                  = userDB.name;
                user.FullName              = userDB.fullName;
                user.Mail                  = userDB.mail;
                user.SendAgreeMail         = userDB.sendAgreeMail;
                user.SendAllMail           = userDB.sendAllMail;
                user.SendCreateMail        = userDB.sendCreateMail;
                user.SendAllAgreeMail      = userDB.sendAllAgreeMail;
                user.SendAllCreateMail     = userDB.sendAllCreateMail;
                user.AllowCreateOrder      = userDB.allowCreateOrder;
                user.AllowCreateCrashOrder = userDB.allowCreateCrashOrder;
                user.AllowReviewOrder      = userDB.allowReviewOrder;
                user.AllowChangeOrder      = userDB.allowChangeOrder;
                user.AllowEditTree         = userDB.allowEditTree;
                user.AllowEditUsers        = userDB.allowEditUsers;
                user.AllowEditOrders       = userDB.allowEditOrders;
                user.AllowAgreeOrders      = userDB.allowAgreeOrders;
                user.CanCreateCranTask     = userDB.canCreateCranTask;
                user.CanReviewCranTask     = userDB.canReviewCranTask;
                user.CanFinishCranTask     = userDB.canFinishCranTask;
                user.SendAllCreateCranTask = userDB.sendAllCreateCranTask;
                user.SendAllCranTask       = userDB.sendAllCranTask;
                user.AddLogins             = userDB.AddLogins;
                user.AddFinishLogins       = userDB.AddFinishLogins;

                try
                {
                    user.Mails = user.Mail.Split(';').ToList();
                }
                catch
                {
                    user.Mails = new List <string>();
                    if (!String.IsNullOrEmpty(user.Mail))
                    {
                        user.Mails.Add(user.Mail);
                    }
                }
                return(user);
            }
            catch (Exception e)
            {
                Logger.error(String.Format("Ошибка при получении краткой информации о пользователе: {0}", e), Logger.LoggerSource.server);
            }
            return(null);
        }
コード例 #13
0
ファイル: Order.cs プロジェクト: rj128x/VotGESOrders2020
        public static Order GetOrder(double oNumber, OrdersUser currentUser, bool readRelated, List <Order> listOrders)
        {
            if (listOrders != null)
            {
                try {
                    return((from Order o in listOrders where o.OrderNumber == oNumber select o).First());
                } catch { }
            }
            Order newOrder = new Order();
            VotGESOrdersEntities context = new VotGESOrdersEntities();
            Orders orderDB = context.Orders.Where(o => o.orderNumber == oNumber).First();

            newOrder.refreshOrderFromDB(orderDB, currentUser, readRelated, listOrders);
            return(newOrder);
        }
コード例 #14
0
ファイル: Order.cs プロジェクト: rj128x/VotGESOrders2020
 private void refreshAgreeUsers()
 {
     AgreeUsers     = new List <OrdersUser>();
     AgreeUsersDict = new Dictionary <int, string>();
     try {
         string[] ids = AgreeUsersIDSText.Split(';');
         foreach (string id in ids)
         {
             try {
                 OrdersUser user = OrdersUser.loadFromCache(Int32.Parse(id));
                 AgreeUsers.Add(user);
                 AgreeUsersDict.Add(user.UserID, user.FullName);
             } catch { }
         }
     } catch { }
 }
コード例 #15
0
ファイル: OrdersUser.cs プロジェクト: rj128x/VotGESOrders2020
        public static OrdersUser getCurrentUser()
        {
            string login = "******";

            if (System.Web.HttpContext.Current != null)
            {
                login = System.Web.HttpContext.Current.User.Identity.Name.ToLower();
            }
            else
            {
                login = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
            }


            return(OrdersUser.loadFromCache(login));
        }
コード例 #16
0
ファイル: OrdersUser.cs プロジェクト: rj128x/VotGESOrders2020
 public static OrdersUser loadFromCache(int userID)
 {
     try
     {
         OrdersUser user = allUsers.AsQueryable().First(u => u.UserID == userID);
         return(user);
     }
     catch (Exception e)
     {
         OrdersUser user = new OrdersUser();
         user.FullName = String.Format("{0}", userID);
         user.Name     = userID.ToString();
         user.UserID   = -1;
         //Logger.error(String.Format("Ошибка при получении краткой информации о пользователе из БД: {0}, {1}", userID, e), Logger.LoggerSource.server);
         return(user);
     }
 }
コード例 #17
0
ファイル: OrdersUser.cs プロジェクト: rj128x/VotGESOrders2020
        public static OrdersUser loadFromCache(string userName)
        {
            try
            {
                //Logger.info(userName,Logger.LoggerSource.client);
                OrdersUser user = allUsers.AsQueryable().First(u => u.Name.ToLower() == userName.ToLower() || (u.AddLogins.ToLower() + ";").Contains(userName.ToLower() + ";"));

                return(user);
            }
            catch (Exception e)
            {
                OrdersUser user = new OrdersUser();
                user.FullName = String.Format("{0}", userName);
                user.Name     = userName;
                user.UserID   = -1;

                //Logger.error(String.Format("Ошибка при получении краткой информации о пользователе из БД: {0}", userName), Logger.LoggerSource.server);
                return(user);
            }
        }
コード例 #18
0
 /// <summary>
 /// Вызывает метод "RegisterChangeUser" указанной сущности <see cref="OrdersUser"/>.
 /// </summary>
 /// <param name="newObject">Экземпляр сущности <see cref="OrdersUser"/>.</param>
 public void RegisterChangeUser(OrdersUser newObject)
 {
     newObject.RegisterChangeUser();
 }
コード例 #19
0
 private bool FilterUserCompleteOrder(OrdersUser entity)
 {
     return (entity.UserID == this.UserCompleteOrderID);
 }
コード例 #20
0
ファイル: Order.cs プロジェクト: rj128x/VotGESOrders2013
		public void checkPremissions(Orders dbOrder, OrdersUser currentUser) {
			OrderCreated = dbOrder.orderCreated;
			OrderReviewed = dbOrder.orderReviewed;
			OrderOpened = dbOrder.orderOpened;
			OrderClosed = dbOrder.orderClosed;
			OrderCanceled = dbOrder.orderCanceled;
			OrderCompleted = dbOrder.orderCompleted;
			OrderCompletedWithoutEnter = dbOrder.orderCompletedWithoutEnter;
			OrderExtended = dbOrder.orderExtended;
			OrderAskExtended = dbOrder.orderAskExtended;
			OrderIsExtend = dbOrder.orderIsExtend;
			OrderIsFixErrorEnter = dbOrder.orderIsFixErrorEnter;
									
			OrderState = (OrderStateEnum)Enum.Parse(typeof(OrderStateEnum), dbOrder.orderState, true);
			OrderType = (OrderTypeEnum)Enum.Parse(typeof(OrderTypeEnum), dbOrder.orderType, true);

			OrderCanceledWithoutReview = OrderCanceled && !OrderReviewed;
			OrderBanned = OrderState == OrderStateEnum.banned;

			int creator=dbOrder.userCreateOrderID;
			AllowReviewOrder = currentUser.AllowReviewOrder && OrderState == OrderStateEnum.created;
			AllowOpenOrder = currentUser.AllowChangeOrder && OrderState == OrderStateEnum.accepted;
			AllowCloseOrder = (currentUser.UserID == creator && OrderState == OrderStateEnum.opened) ||
				currentUser.AllowChangeOrder && OrderState == OrderStateEnum.opened;
			AllowCompleteWithoutEnterOrder = currentUser.AllowChangeOrder && currentUser.AllowCreateCrashOrder && OrderState == OrderStateEnum.closed;
			AllowCompleteOrder = currentUser.AllowChangeOrder && OrderState == OrderStateEnum.closed;
			AllowChangeOrder = (currentUser.UserID == creator || currentUser.AllowChangeOrder) && OrderState == OrderStateEnum.created||
				(currentUser.AllowChangeOrder && (OrderType==OrderTypeEnum.no||OrderType==OrderTypeEnum.crash)&&OrderState==OrderStateEnum.opened);
			AllowExtendOrder = (currentUser.AllowChangeOrder || currentUser.UserID == creator) && OrderState == OrderStateEnum.opened;
			AllowCancelOrder = ((currentUser.UserID == creator || currentUser.AllowChangeOrder) &&
				(OrderState == OrderStateEnum.created || OrderState == OrderStateEnum.accepted || orderState == OrderStateEnum.opened && OrderIsExtend)) ||
				currentUser.AllowChangeOrder && OrderState == OrderStateEnum.opened && orderIsFixErrorEnter;
				


			string[] ids= dbOrder.agreeUsersIDS.Split(';');
			AllowCommentOrder = true;

			AllowRejectReviewOrder = (currentUser.AllowEditOrders||currentUser.AllowReviewOrder) && 
				(OrderState == OrderStateEnum.accepted || OrderState == OrderStateEnum.banned && !OrderIsExtend || 
				OrderState==OrderStateEnum.opened && OrderIsExtend);
			AllowRejectOpenOrder = (currentUser.AllowEditOrders || currentUser.AllowChangeOrder) && OrderState == OrderStateEnum.opened && !OrderIsExtend && !OrderIsFixErrorEnter && 
				!OrderExtended && !OrderAskExtended &&
				OrderType != OrderTypeEnum.crash && OrderType != OrderTypeEnum.no;
			AllowRejectCloseOrder = (currentUser.AllowEditOrders || currentUser.AllowChangeOrder) && OrderState == OrderStateEnum.closed;
			AllowRejectCancelOrder = (currentUser.AllowEditOrders || currentUser.AllowChangeOrder) && OrderState == OrderStateEnum.canceled && !OrderIsExtend && !OrderIsFixErrorEnter;
			AllowRejectCompleteOrder = (currentUser.AllowEditOrders || currentUser.AllowChangeOrder) && OrderState == OrderStateEnum.completed;
			AllowEditOrder = currentUser.AllowEditOrders;
		}
コード例 #21
0
ファイル: Order.cs プロジェクト: rj128x/VotGESOrders2013
		public void refreshOrderFromDB(Orders dbOrder, OrdersUser currentUser, bool readRelated, List<Order> listOrders) {
			if (listOrders != null) {
				if (!listOrders.Contains(this)) {
					listOrders.Add(this);
				}
			}

			OrderOperation = OrderOperationEnum.none;
			checkPremissions(dbOrder, currentUser);

			SelOrderObject = OrderObject.getByID(dbOrder.orderObjectID);

			OrderNumber = dbOrder.orderNumber;
			OrderType = (OrderTypeEnum)Enum.Parse(typeof(OrderTypeEnum), dbOrder.orderType, true);
			ReadyTime = dbOrder.readyTime;

			CreateText = dbOrder.createText;
			ReviewText = dbOrder.reviewText;
			OpenText = dbOrder.openText;
			CloseText = dbOrder.closeText;
			CompleteText = dbOrder.completeText;
			CancelText = dbOrder.cancelText;
			OrderObjectAddInfo = dbOrder.orderObjectAddInfo;

			OrderText = dbOrder.orderText;
			AgreeText = dbOrder.agreeText;
			AgreeUsersIDSText = dbOrder.agreeUsersIDS;
			refreshAgreeUsers();
			
			FaktStartDate = dbOrder.faktStartDate;
			FaktStopDate = dbOrder.faktStopDate;
			FaktCompleteDate = dbOrder.faktCompleteDate;
			PlanStartDate = dbOrder.planStartDate;
			PlanStopDate = dbOrder.planStopDate;

			OrderDateReview = dbOrder.orderDateReview;
			OrderDateClose = dbOrder.orderDateClose;
			OrderDateOpen = dbOrder.orderDateOpen;
			OrderDateCreate = dbOrder.orderDateCreate;
			OrderDateComplete = dbOrder.orderDateComplete;
			OrderDateCancel = dbOrder.orderDateCancel;

			ExpiredReglamentHours = dbOrder.expiredReglamentHours;
			ExpiredOpenHours = dbOrder.expiredOpenHours;
			ExpiredCompleteHours = dbOrder.expiredCompleteHours;
			ExpiredCloseHours = dbOrder.expiredCloseHours;

			OrderIsExpiredClose = ExpiredCloseHours.HasValue && ExpiredCloseHours.Value < 0;
			OrderIsExpiredOpen = ExpiredOpenHours.HasValue && ExpiredOpenHours.Value < 0;
			OrderIsExpriredComplete = ExpiredCompleteHours.HasValue && ExpiredCompleteHours.Value < 0;
			OrderIsExpiredReglament = ExpiredReglamentHours.HasValue && ExpiredReglamentHours.Value < 0;


			CommentsText = dbOrder.commentsText;
			HasComments = !String.IsNullOrEmpty(CommentsText) || !String.IsNullOrEmpty(CreateText);


			UserCreateOrder = OrdersUser.loadFromCache(dbOrder.userCreateOrderID);

			if (dbOrder.userReviewOrderID != null) {
				UserReviewOrder = OrdersUser.loadFromCache(dbOrder.userReviewOrderID.Value);
			}
			if (dbOrder.userCloseOrderID != null) {
				UserCloseOrder = OrdersUser.loadFromCache(dbOrder.userCloseOrderID.Value);
			}
			if (dbOrder.userCancelOrderID != null) {
				UserCancelOrder = OrdersUser.loadFromCache(dbOrder.userCancelOrderID.Value);
			}
			if (dbOrder.userOpenOrderID != null) {
				UserOpenOrder = OrdersUser.loadFromCache(dbOrder.userOpenOrderID.Value);
			}
			if (dbOrder.userCompleteOrderID != null) {
				UserCompleteOrder = OrdersUser.loadFromCache(dbOrder.userCompleteOrderID.Value);
			}

			if (OrderExtended || OrderAskExtended ||OrderCompletedWithoutEnter) {
				if (readRelated) {
					ChildOrder = GetOrder(dbOrder.childOrderNumber.Value, currentUser, readRelated, listOrders);
				} else {
					ChildOrderNumber = dbOrder.childOrderNumber.Value;
				}
			} else {
				ChildOrderNumber = 0;
			}

			if (OrderIsExtend||OrderIsFixErrorEnter) {
				if (readRelated) {
					ParentOrder = GetOrder(dbOrder.parentOrderNumber.Value, currentUser, readRelated, listOrders);
				} else {
					ParentOrderNumber = dbOrder.parentOrderNumber.Value;
				}
			} else {
				ParentOrderNumber = 0;
			}
			OrderHasChildOrder = ChildOrderNumber > 0;
			OrderHasParentOrder = ParentOrderNumber > 0;
			checkTimeToOpen();	
		}
コード例 #22
0
		private void btnAddItem_Click(object sender, RoutedEventArgs e) {
			cancelEdit();
			OrdersUser newUser=new OrdersUser();
			newUser.UserID = UserID--;
			isNew = true;
			CurrentUser=newUser;
			userForm.CurrentItem = CurrentUser;
			Login.IsEnabled = isNew;
		}
コード例 #23
0
		private void btnCancel_Click(object sender, RoutedEventArgs e) {
			cancelEdit(); 
			CurrentUser = null;
			userForm.CurrentItem = null;
		}
コード例 #24
0
ファイル: Order.cs プロジェクト: rj128x/VotGESOrders2013
		public Order(Orders dbOrder, OrdersUser currentUser, bool readRelated, List<Order> listOrders) {
			refreshOrderFromDB(dbOrder, currentUser, readRelated,listOrders);			
		}
コード例 #25
0
 private bool FilterUserCancelOrder(OrdersUser entity)
 {
     return (entity.UserID == this.UserCancelOrderID);
 }
コード例 #26
0
ファイル: UserContext.cs プロジェクト: rj128x/VotGESOrders
        public void RegisterDeleteUser(OrdersUser newUser)
        {
            Logger.info("Пользователь удалил пользователя", Logger.LoggerSource.usersContext);
            try {
                if (!CurrentUser.AllowEditUsers) {
                    throw new DomainException("У вас нет прав редактировать пользователей");
                }
                VotGESOrdersEntities context=new VotGESOrdersEntities();

                IQueryable<Users> users=(from u in context.Users where u.name.ToLower() == newUser.Name.ToLower() select u);
                Users user=null;
                user = users.First();

                context.DeleteObject(user);

                context.SaveChanges();
                OrdersUser.init();
                Logger.info("===Сохранено", Logger.LoggerSource.usersContext);

            } catch (Exception e) {
                Logger.error(String.Format("===Ошибка при удалении пользователя: {0}", e), Logger.LoggerSource.usersContext);
                if (e is DomainException) {
                    throw e;
                }
                throw new DomainException("Ошибка при удалении пользователя. Возможно на пользователя ссылаются заявки");
            }
        }
コード例 #27
0
 private bool FilterUserReviewOrder(OrdersUser entity)
 {
     return (entity.UserID == this.UserReviewOrderID);
 }
コード例 #28
0
		public void RegisterDeleteUser(OrdersUser newObject) {
			Logger.info("удаление пользователя " + newObject.FullName, Logger.LoggerSource.service);
			usrContext.RegisterDeleteUser(newObject);
		}
コード例 #29
0
 /// <summary>
 /// Вызывает метод "RegisterDeleteUser" указанной сущности <see cref="OrdersUser"/>.
 /// </summary>
 /// <param name="newObject">Экземпляр сущности <see cref="OrdersUser"/>.</param>
 public void RegisterDeleteUser(OrdersUser newObject)
 {
     newObject.RegisterDeleteUser();
 }
コード例 #30
0
ファイル: Order.cs プロジェクト: rj128x/VotGESOrders2020
 public Order(Orders dbOrder, OrdersUser currentUser, bool readRelated, List <Order> listOrders)
 {
     refreshOrderFromDB(dbOrder, currentUser, readRelated, listOrders);
 }
コード例 #31
0
ファイル: Order.cs プロジェクト: rj128x/VotGESOrders2013
		public static Order GetOrder(double oNumber, OrdersUser currentUser, bool readRelated, List<Order> listOrders){
			if (listOrders != null) {
				try{
					return (from Order o in listOrders where o.OrderNumber == oNumber select o).First();
				}
				catch{}
			} 
			Order newOrder=new Order();
			VotGESOrdersEntities context=new VotGESOrdersEntities();
			Orders orderDB=context.Orders.Where(o => o.orderNumber == oNumber).First();
			newOrder.refreshOrderFromDB(orderDB, currentUser, readRelated, listOrders);			
			return newOrder;			
		}
コード例 #32
0
ファイル: Order.cs プロジェクト: rj128x/VotGESOrders2020
        public void refreshOrderFromDB(Orders dbOrder, OrdersUser currentUser, bool readRelated, List <Order> listOrders)
        {
            if (listOrders != null)
            {
                if (!listOrders.Contains(this))
                {
                    listOrders.Add(this);
                }
            }

            OrderOperation = OrderOperationEnum.none;
            checkPremissions(dbOrder, currentUser);


            SelOrderObject = OrderObject.getByID(dbOrder.orderObjectID);

            OrderNumber = dbOrder.orderNumber;
            if (dbOrder.orderYearNumber.HasValue)
            {
                OrderYearNumber = dbOrder.orderYearNumber.Value;
            }
            else
            {
                OrderYearNumber = OrderNumber;
            }

            OrderType = (OrderTypeEnum)Enum.Parse(typeof(OrderTypeEnum), dbOrder.orderType, true);
            ReadyTime = dbOrder.readyTime;

            CreateText         = dbOrder.createText;
            ReviewText         = dbOrder.reviewText;
            OpenText           = dbOrder.openText;
            CloseText          = dbOrder.closeText;
            CompleteText       = dbOrder.completeText;
            CancelText         = dbOrder.cancelText;
            OrderObjectAddInfo = dbOrder.orderObjectAddInfo;

            OrderText         = dbOrder.orderText;
            AgreeText         = dbOrder.agreeText;
            AgreeUsersIDSText = dbOrder.agreeUsersIDS;
            refreshAgreeUsers();

            FaktStartDate    = dbOrder.faktStartDate;
            FaktStopDate     = dbOrder.faktStopDate;
            FaktCompleteDate = dbOrder.faktCompleteDate;
            PlanStartDate    = dbOrder.planStartDate;
            PlanStopDate     = dbOrder.planStopDate;

            OrderDateReview   = dbOrder.orderDateReview;
            OrderDateClose    = dbOrder.orderDateClose;
            OrderDateOpen     = dbOrder.orderDateOpen;
            OrderDateCreate   = dbOrder.orderDateCreate;
            OrderDateComplete = dbOrder.orderDateComplete;
            OrderDateCancel   = dbOrder.orderDateCancel;

            ExpiredReglamentHours = dbOrder.expiredReglamentHours;
            ExpiredOpenHours      = dbOrder.expiredOpenHours;
            ExpiredCompleteHours  = dbOrder.expiredCompleteHours;
            ExpiredCloseHours     = dbOrder.expiredCloseHours;

            OrderIsExpiredClose     = ExpiredCloseHours.HasValue && ExpiredCloseHours.Value < 0;
            OrderIsExpiredOpen      = ExpiredOpenHours.HasValue && ExpiredOpenHours.Value < 0;
            OrderIsExpriredComplete = ExpiredCompleteHours.HasValue && ExpiredCompleteHours.Value < 0;
            OrderIsExpiredReglament = ExpiredReglamentHours.HasValue && ExpiredReglamentHours.Value < 0;


            CommentsText = dbOrder.commentsText;
            HasComments  = !String.IsNullOrEmpty(CommentsText) || !String.IsNullOrEmpty(CreateText);


            UserCreateOrder = OrdersUser.loadFromCache(dbOrder.userCreateOrderID);

            if (dbOrder.userReviewOrderID != null)
            {
                UserReviewOrder = OrdersUser.loadFromCache(dbOrder.userReviewOrderID.Value);
            }
            if (dbOrder.userCloseOrderID != null)
            {
                UserCloseOrder = OrdersUser.loadFromCache(dbOrder.userCloseOrderID.Value);
            }
            if (dbOrder.userCancelOrderID != null)
            {
                UserCancelOrder = OrdersUser.loadFromCache(dbOrder.userCancelOrderID.Value);
            }
            if (dbOrder.userOpenOrderID != null)
            {
                UserOpenOrder = OrdersUser.loadFromCache(dbOrder.userOpenOrderID.Value);
            }
            if (dbOrder.userCompleteOrderID != null)
            {
                UserCompleteOrder = OrdersUser.loadFromCache(dbOrder.userCompleteOrderID.Value);
            }



            if (OrderExtended || OrderAskExtended || OrderCompletedWithoutEnter)
            {
                if (readRelated)
                {
                    ChildOrder = GetOrder(dbOrder.childOrderNumber.Value, currentUser, readRelated, listOrders);
                }
                else
                {
                    ChildOrderNumber = dbOrder.childOrderNumber.Value;
                }
                ChildOrderYearNumber = Math.Floor(OrderYearNumber) + ChildOrderNumber - Math.Floor(ChildOrderNumber);
            }
            else
            {
                ChildOrderNumber     = 0;
                ChildOrderYearNumber = 0;
            }


            if (OrderIsExtend || OrderIsFixErrorEnter)
            {
                if (readRelated)
                {
                    ParentOrder = GetOrder(dbOrder.parentOrderNumber.Value, currentUser, readRelated, listOrders);
                }
                else
                {
                    ParentOrderNumber = dbOrder.parentOrderNumber.Value;
                }
                ParentOrderYearNumber = Math.Floor(OrderYearNumber) + ParentOrderNumber - Math.Floor(ParentOrderNumber);
            }
            else
            {
                ParentOrderNumber     = 0;
                ParentOrderYearNumber = 0;
            }

            OrderYearNumber       = checkOrderNumber(OrderYearNumber);
            ParentOrderYearNumber = checkOrderNumber(ParentOrderYearNumber);
            ChildOrderYearNumber  = checkOrderNumber(ChildOrderYearNumber);

            if (OrderIsExtend || OrderIsFixErrorEnter)
            {
                try {
                    OrderYear = GetOrder(Math.Floor(OrderNumber), currentUser, false, null).OrderDateCreate.Year;
                } catch (Exception e) {
                    OrderYear = OrderDateCreate.Year;
                }
            }
            else
            {
                OrderYear = OrderDateCreate.Year;
            }
            OrderNumberFloor = Math.Floor(OrderNumber).ToString();
            OrderNumberExp   = Math.Round(((OrderNumber - Math.Floor(OrderNumber)) * 100)).ToString();
            if (OrderNumberExp.Length == 1)
            {
                OrderNumberExp = "0" + OrderNumberExp;
            }
            IsCurrentYear       = OrderYear == DateTime.Now.Year;
            OrderHasChildOrder  = ChildOrderNumber > 0;
            OrderHasParentOrder = ParentOrderNumber > 0;
            checkTimeToOpen();
        }
コード例 #33
0
		public void UpdateOrdersUser(OrdersUser obj) {
			//Logger.info("Сервис: Update " + obj.FullName);
			//context.UpdateOrder(order);
		}
コード例 #34
0
		public OrderObjectContext() {
			CurrentUser = OrdersUser.loadFromCache(HttpContext.Current.User.Identity.Name);
		}
コード例 #35
0
 public OrderObjectContext()
 {
     CurrentUser = OrdersUser.getCurrentUser();
 }
コード例 #36
0
ファイル: OrdersUser.cs プロジェクト: rj128x/VotGESOrders
 public static OrdersUser getFromDB(Users userDB)
 {
     try {
         OrdersUser user=new OrdersUser();
         user.UserID = userDB.userID;
         user.Name = userDB.name;
         user.FullName = userDB.fullName;
         user.Mail = userDB.mail;
         user.SendAgreeMail = userDB.sendAgreeMail;
         user.SendAllMail = userDB.sendAllMail;
         user.SendCreateMail = userDB.sendCreateMail;
         user.SendAllAgreeMail = userDB.sendAllAgreeMail;
         user.SendAllCreateMail = userDB.sendAllCreateMail;
         user.AllowCreateOrder = userDB.allowCreateOrder;
         user.AllowCreateCrashOrder = userDB.allowCreateCrashOrder;
         user.AllowReviewOrder = userDB.allowReviewOrder;
         user.AllowChangeOrder = userDB.allowChangeOrder;
         user.AllowEditTree = userDB.allowEditTree;
         user.AllowEditUsers = userDB.allowEditUsers;
         user.AllowEditOrders = userDB.allowEditOrders;
         user.AllowAgreeOrders = userDB.allowAgreeOrders;
         try {
             user.Mails = user.Mail.Split(';').ToList();
         }catch{
             user.Mails=new List<string>();
             if (!String.IsNullOrEmpty(user.Mail)){
                 user.Mails.Add(user.Mail);
             }
         }
         return user;
     } catch (Exception e) {
         Logger.error(String.Format("Ошибка при получении краткой информации о пользователе: {0}", e), Logger.LoggerSource.server);
     }
     return null;
 }