Example #1
0
        public void OnUpdated(EntityJs.Client.Events.EntityEventArgs e)
        {
            BuildingEntities db        = (BuildingEntities)e.Context;
            List <Employee>  employees = db.Employees.Where(val => (this.EmployeeID.HasValue && val.ID == this.EmployeeID) || (val.UserID.HasValue && val.UserID == this.ID)).ToList();

            employees.ForEach(val =>
            {
                if (val.ID == this.EmployeeID)
                {
                    val.UserID = this.ID;
                }
                else
                {
                    val.UserID = null;
                }
            });
            UpdateNames();

            if (this.ID == db.CurrentUser.ID)
            {
                db.CurrentUser = this;
            }
        }
Example #2
0
        public void OnInserted(EntityJs.Client.Events.EntityEventArgs e)
        {
            BuildingEntities db = (BuildingEntities)e.Context;

            if (this.DateEnd.HasValue)
            {
                this.StatusID = TaskStatusesEnum.Completed;
            }
            if (this.StatusID == 0)
            {
                this.StatusID = TaskStatusesEnum.New;
            }
            if (this.ResponsibleID == 0 && this.Project != null)
            {
                this.UserResponsible = this.Project.UserResponsible;
            }
            if (!this.EmployeeID.HasValue && this.Project != null && this.Project.EmployeeID.HasValue)
            {
                this.EmployeeID = this.Project.EmployeeID;
            }
            if (!this.EmployeeID.HasValue && this.UserResponsible != null && this.UserResponsible.EmployeeID.HasValue)
            {
                this.EmployeeID = this.UserResponsible.EmployeeID;
            }
            if (!this.TurnID.HasValue)
            {
                this.Turn = db.Statbooks.FirstOrDefault(val => !val.Deleted && val.TypeID == StatbookTypesEnum.TaskTurns);
            }
            if (!this.VisibilityID.HasValue)
            {
                this.Visibility = db.Statbooks.FirstOrDefault(val => !val.Deleted && val.TypeID == StatbookTypesEnum.TaskVisibilities);
            }
            if (!TypeID.HasValue)
            {
                Type = db.TaskTypes.FirstOrDefault(val => !val.Deleted && val.SysName == "Task");
            }
        }
Example #3
0
        public Folder GetFolder(Project project, bool saveChanges)
        {
            DateTime date   = DateTime.Now;
            int      userID = db.CurrentUser.ID;

            Folder folder = db.Folders.FirstOrDefault(val => val.ProjectID == project.ID && !val.ParentID.HasValue);

            if (folder == null)
            {
                var args = new EntityJs.Client.Events.EntityEventArgs(db, "Folders", "Folder", folder, EntityJs.Client.Events.ActionsEnum.Insert);
                folder = new Folder()
                {
                    ProjectID = project.ID, Project = project, Name = project.Name, ChangeDate = date, ChangerID = userID, CreateDate = date, CreatorID = userID
                };
                db.Folders.AddObject(folder);
                folder.OnInserted(args);
                if (saveChanges)
                {
                    db.SaveChanges();
                }
            }

            return(folder);
        }
Example #4
0
        public void OnUpdated(EntityJs.Client.Events.EntityEventArgs e)
        {
            BuildingEntities db = (BuildingEntities)e.Context;

            this.UserID = db.CurrentUser.ID;
        }
Example #5
0
 public void OnDeleted(EntityJs.Client.Events.EntityEventArgs e)
 {
     this.RemoveFile();
 }
Example #6
0
 public void OnUpdated(EntityJs.Client.Events.EntityEventArgs e)
 {
     this.Name = this.Name.Replace(System.IO.Path.GetInvalidFileNameChars(), "_");
 }
Example #7
0
 public void OnUpdated(EntityJs.Client.Events.EntityEventArgs e)
 {
     UpdateProjectExpense((BuildingEntities)e.Context);
 }
Example #8
0
 public void OnUpdated(EntityJs.Client.Events.EntityEventArgs e)
 {
     Settings.Clear(this.SysName);
 }
Example #9
0
 public void OnInserting(EntityJs.Client.Events.EntityEventArgs e)
 {
     RegistrationDate = DateTime.Now;
     LastLoginDate    = DateTime.Now;
     //RoleID = (int)LanguageSchool.Models.SchoolEntities.RolesEnum.manager;
 }
Example #10
0
 public void OnUpdated(EntityJs.Client.Events.EntityEventArgs e)
 {
 }
Example #11
0
 public void OnUpdating(EntityJs.Client.Events.EntityEventArgs e)
 {
     this.OldStatusID = StatusID;
 }
Example #12
0
        public void OnDeleting(EntityJs.Client.Events.EntityEventArgs e)
        {
            List <Expense> children = this.ChildExpenses.ToList();

            children.ForEach(val => e.Context.DeleteObject(val));
        }
Example #13
0
 public void OnUpdating(EntityJs.Client.Events.EntityEventArgs e)
 {
     e.Values.Remove("ParentID");
     e.Values.Remove("Sum");
     e.Values.Remove("DispatchID");
 }
Example #14
0
        private Project DuplicateProject(Project Origin, Project Parent = null, Dictionary <ProjectTask, ProjectTask> TasksMap = null, int?Diff = null)
        {
            DateTime date   = DateTime.Now;
            int      userID = db.CurrentUser.ID;
            User     user   = db.CurrentUser;

            int     diff    = Diff ?? (date - Origin.StartDate).Days;
            Project project = Origin.Duplicate();

            project.Name          = string.Format("Копия - {0}", project.Name);
            project.CreatorID     = userID;
            project.ChangerID     = userID;
            project.ParentProject = Parent;

            db.Projects.AddObject(project);

            EntityJs.Client.Events.EntityEventArgs args = new EntityJs.Client.Events.EntityEventArgs(db, "Projects", "Project", project, EntityJs.Client.Events.ActionsEnum.Insert);
            project.OnInserted(args);

            TasksMap = TasksMap ?? new Dictionary <ProjectTask, ProjectTask>();
            foreach (ProjectTask oldTask in Origin.ProjectTasks)
            {
                ProjectTask task = oldTask.Duplicate();
                task.Creator = user.Login;
                task.Project = project;
                //if (task.DateBegin.HasValue)
                //    task.DateBegin = task.DateBegin.Value.AddDays(diff);
                //if (task.DateEndPlan.HasValue)
                //    task.DateEndPlan = task.DateEndPlan.Value.AddDays(diff);
                db.ProjectTasks.AddObject(task);

                args = new EntityJs.Client.Events.EntityEventArgs(db, "ProjectTasks", "ProjectTask", task, EntityJs.Client.Events.ActionsEnum.Insert);
                task.OnInserted(args);

                if (!oldTask.PreviousID.HasValue)
                {
                    task.DateBegin = date;
                }
                if (task.Type != null && task.Type.Duration.HasValue && task.DateBegin.HasValue)
                {
                    task.DateEndPlan = task.DateBegin.Value.AddDays(task.Type.Duration.Value);
                }

                TasksMap[oldTask] = task;
            }

            foreach (Project child in Origin.ChildProjects)
            {
                DuplicateProject(child, project, TasksMap, diff);
            }

            foreach (KeyValuePair <ProjectTask, ProjectTask> pair in TasksMap)
            {
                ProjectTask task;
                if (pair.Key.PreviousTask != null && pair.Value.PreviousTask == null && TasksMap.TryGetValue(pair.Key.PreviousTask, out task))
                {
                    pair.Value.PreviousTask = task;
                    task.NextTasks.Add(pair.Value);
                }
            }

            //if (Parent == null)
            //{
            //    foreach (ProjectTask task in TasksMap.Values)
            //    {
            //        if (task.PreviousID.HasValue)
            //            continue;
            //        task.UpdateNextTasks();
            //    }
            //}
            return(project);
        }
Example #15
0
 public void OnSelecting(EntityJs.Client.Events.EntityEventArgs e)
 {
 }
Example #16
0
 public void OnInserted(EntityJs.Client.Events.EntityEventArgs e)
 {
 }
Example #17
0
 public void OnUpdated(EntityJs.Client.Events.EntityEventArgs e)
 {
     this.SysName = this.Name.ReplaceRegex("[^A-Za-zА-Яа-я0-9]", "").ToLower();
 }
Example #18
0
 public void OnDeleted(EntityJs.Client.Events.EntityEventArgs e)
 {
 }
Example #19
0
 public void OnInserted(EntityJs.Client.Events.EntityEventArgs e)
 {
     Count = Count <= 0 ? 1 : Count;
 }