Exemplo n.º 1
0
        public void DoWork()
        {
            string creator = "system", creatorName = "Система";

            DateTime date = DateTime.Now.Date;
            //List<ProjectTask> tasksToActivate = db.ProjectTasks.Where(val => val.StatusID < TaskStatusesEnum.Active && val.DateBegin <= date && (!val.PreviousID.HasValue || val.PreviousTask.StatusID == TaskStatusesEnum.Completed)).ToList();
            //foreach (ProjectTask task in tasksToActivate)
            //{
            //    bool send = task.StatusID == TaskStatusesEnum.Created;
            //    task.StatusID = TaskStatusesEnum.Active;
            //    db.SaveChanges();
            //    if (send)
            //        task.SendStatusNotification();
            //}

            //List<ProjectTask> tasksToDeactivate = db.ProjectTasks.Where(val => val.StatusID == TaskStatusesEnum.Active && (val.DateBegin > date || val.PreviousID.HasValue && val.PreviousTask.StatusID != TaskStatusesEnum.Completed)).ToList();
            //foreach (ProjectTask task in tasksToDeactivate)
            //{
            //    task.StatusID = TaskStatusesEnum.Created;
            //    db.SaveChanges();
            //}

            List <ProjectTask> tasksOverdue = db.ProjectTasks.Where(val => val.StatusID == TaskStatusesEnum.ToDo && SqlFunctions.DateDiff("DAY", val.DateEndPlan, date) == 1 && !val.Project.Deleted &&
                                                                    !val.Messages.Any(m => SqlFunctions.DateDiff("DAY", date, m.CreateDate) == 0 && m.SysText == taskOverdueKey)).ToList();

            foreach (ProjectTask task in tasksOverdue)
            {
                task.SendNotification("ProjectTask_Overdue");
                ProjectTaskMessage m = new ProjectTaskMessage()
                {
                    CreateDate  = DateTime.Now,
                    Creator     = creator,
                    CreatorName = creatorName,
                    SysText     = taskOverdueKey,
                    TaskID      = task.ID,
                    Text        = Settings.GetValue(taskOverdueKey + "Text")
                };
                db.ProjectTaskMessages.AddObject(m);
                db.SaveChanges();
            }

            List <Employee> employees = db.Employees.Where(val => val.SalaryExpenses.Any(se => se.ChangeDate > date || se.CreateDate > date) || val.Payrolls.Any(se => se.ChangeDate > date || se.CreateDate > date)).ToList();

            foreach (Employee emp in employees)
            {
                emp.UpdateSalaryBalance();
            }
            db.SaveChanges();
        }
Exemplo n.º 2
0
        public ActionResult ChangePassword(string OldPassword, string NewPassword)
        {
            int  currentUserID = HttpContext.CurrentUser().ID;
            User user          = db.Users.FirstOrDefault(val => val.ID == currentUserID);

            if (user.Password != OldPassword.ToSha1Base64String())
            {
                return(this.GetJsonResult(202, Resources.ModelErrorMessages.InvalidOldPassword));
            }

            user.Password = NewPassword.ToSha1Base64String();
            db.SaveChanges();

            return(this.GetJsonResult(200, Resources.ModelErrorMessages.PasswordChanged));
        }
Exemplo n.º 3
0
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                BuildingEntities db = new BuildingEntities();
                if (Request.Params.AllKeys.Contains("id"))
                {
                    int id = int.Parse(Request.Params["id"]);
                    var obj = db.Posts.FirstOrDefault(s => s.Id == id);
                    if (obj != null)
                    {
                        db.Posts.DeleteObject(obj);
                        db.SaveChanges();
                        LogHelper.Write(string.Format("{0} удалил должность '{1}'", User.Identity.Name, obj.Name));
                    }
                }
            }
            catch (Exception)
            {

            }
            finally
            {
                Response.Redirect("Posts.aspx");
            }
        }
Exemplo n.º 4
0
        public static EmailTemplate GetEmailTemplate(string Name)
        {
            string        name   = Name;
            EmailTemplate result = MemoryCache.Default.Get(key + name) as EmailTemplate;

            if (result != null)
            {
                return(result);
            }

            BuildingEntities db = new BuildingEntities();
            EmailTemplate    et = db.EmailTemplates.FirstOrDefault(val => val.SysName == name);

            if (et == null)
            {
                User user = db.CurrentUser;
                et            = new EmailTemplate();
                et.SysName    = Name;
                et.Name       = Name;
                et.CreateDate = DateTime.Now;
                et.Creator    = user != null ? user.Login : "******";
                db.EmailTemplates.AddObject(et);
                db.SaveChanges();
            }
            MemoryCache.Default.Add(key + name, et, new CacheItemPolicy()
            {
                AbsoluteExpiration = DateTime.Now.AddMinutes(duration)
            });

            db.Dispose();

            return(et);
        }
Exemplo n.º 5
0
        public static string GetValue(string Name, string Default = "")
        {
            string result = MemoryCache.Default.Get(key + Name) as string;

            if (result.IsNotNullOrEmpty())
            {
                return(result);
            }

            BuildingEntities db = new BuildingEntities();
            SystemSetting    ss = db.SystemSettings.FirstOrDefault(val => val.Name == Name);

            if (ss == null)
            {
                ss       = new SystemSetting();
                ss.Name  = Name;
                ss.Value = Default;
                ss.Date  = DateTime.Now;
                ss.Title = Name;
                db.SystemSettings.AddObject(ss);
                db.SaveChanges();
            }

            db.Dispose();
            Default = ss.Value;

            MemoryCache.Default.Add(key + Name, Default, new CacheItemPolicy()
            {
                AbsoluteExpiration = DateTime.Now.AddMinutes(duration)
            });

            return(Default);
        }
Exemplo n.º 6
0
 public static void Write(string text)
 {
     BuildingEntities db = new BuildingEntities();
     UserLog log = new UserLog {Date = DateTime.Now, Text = text};
     db.UserLogs.AddObject(log);
     db.SaveChanges();
 }
Exemplo n.º 7
0
        public ActionResult Index(int?ID)
        {
            string settingsName = "/Employee/Index";
            User   user         = HttpContext.CurrentUser();
            int    userID       = user.ID;

            Employee employee = db.Employees.FirstOrDefault(val => val.ID == ID && !val.Deleted);

            if (!ID.HasValue && user.EmployeeID.HasValue || user.RoleID == (int)RolesEnum.Employee && (user.EmployeeID != ID || employee.UserID != user.ID))
            {
                return(Redirect("~/Employee/Index/" + user.EmployeeID));
            }

            if (user.RoleID == (int)RolesEnum.Manager && employee.User != null && employee.User.RoleID <= (int)RolesEnum.Manager && (user.EmployeeID != ID || employee.UserID != user.ID))
            {
                return(HttpNotFound());
            }

            int        year  = DateTime.Today.Year;
            int        month = DateTime.Today.Month;
            List <int> years;

            string[] months = System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.MonthNames;
            years = db.Expenses.Where(val => val.EmployeeID == ID).Select(val => SqlFunctions.DatePart("YEAR", val.Date)).Distinct().OrderByDescending(val => val).Select(val => val.Value).ToList();
            years.AddRange(db.Transfers.Where(val => (val.WalletFrom.EmployeeID == ID || val.WalletTo.EmployeeID == ID))
                           .Select(val => SqlFunctions.DatePart("YEAR", val.Date)).Distinct().OrderByDescending(val => val).Select(val => val.Value).ToList());

            for (int i = years.Any() ? years.First() : DateTime.Today.Year; i < DateTime.Today.Year + 2; i++)
            {
                if (!years.Contains(i))
                {
                    years.Add(i);
                }
            }
            years = years.Distinct().OrderByDescending(val => val).ToList();
            List <Wallet> wallets = db.Wallets.Where(val => val.EmployeeID == ID || val.EmployeeWallets.Any(ew => ew.EmployeeID == ID && ew.Expense)).ToList();

            employee.UpdateSalaryBalance();
            db.SaveChanges();

            object data = new
            {
                Year     = year,
                Month    = month,
                Years    = years,
                Months   = months,
                Employee = employee.ToJson(),
                Settings = db.UserSettings.Where(val => val.UserID == userID && val.Name.IndexOf(settingsName) == 0).ToList().Select(val => val.ToJson()).ToList(),

                Departments = db.Departments.Where(val => !val.Deleted || val.ID == employee.DepartmentID).OrderBy(val => val.OrderNumber).ToList().Select(val => val.ToJson()).ToList(),
                Positions   = db.Positions.Where(val => !val.Deleted || val.ID == employee.PositionID).OrderBy(val => val.OrderNumber).ToList().Select(val => val.ToJson()).ToList()
            };

            ViewBag.Employee = employee;
            ViewBag.Data     = serializer.Serialize(data);
            ViewBag.Page     = "Employee.Index";
            return(View());
        }
Exemplo n.º 8
0
        public JsonResult PayManagerFee(int[] IDs)
        {
            DateTime    date   = DateTime.Now;
            int         userID = db.CurrentUser.ID;
            ExpenseType type   = db.ExpenseTypes.FirstOrDefault(val => val.ManagerFee);

            if (type == null)
            {
                return(Json(new { Success = false, Error = "Необходимо настроить тип расхода для выдачи % менеджера" }));
            }
            List <Project> projects = db.Projects.Where(val => IDs.Contains(val.ID)).ToList();

            foreach (Project p in projects)
            {
                var e = new EntityJs.Client.Events.CheckPermissionsEventArgs(db, "Projects", "Project", p, EntityJs.Client.Events.ActionsEnum.Select);
                p.OnCheckPermissions(e);
                decimal sum = Math.Round(p.ManagerFeeAmount - p.ManagerFeePaid, 2);
                if (e.Cancel || sum <= 0)
                {
                    continue;
                }
                Employee employee = p.UserResponsible.Employee;
                if (employee == null)
                {
                    continue;
                }
                Expense ex = new Expense()
                {
                    Date       = date,
                    ChangeDate = date,
                    ChangerID  = userID,
                    CreateDate = date,
                    CreatorID  = userID,
                    EmployeeID = employee.ID,
                    ProjectID  = p.ID,
                    Sum        = sum,
                    PeriodSum  = sum,
                    TypeID     = type.ID,
                    WalletID   = employee.WalletID.Value
                };
                db.Expenses.AddObject(ex);
            }
            db.SaveChanges();
            return(Json(new { Success = true }));
        }
Exemplo n.º 9
0
        public ActionResult WorkTypes(string ID)
        {
            string settingsName = "/Helpers/WorkTypes";
            User   user         = HttpContext.CurrentUser();
            int    userID       = user.ID;

            if (ID == "UpdateSysName")
            {
                db.WorkTypes.ToList().ForEach(val => val.OnUpdated(new EntityJs.Client.Events.EntityEventArgs(db, "WorkTypes", "WorkType", val, EntityJs.Client.Events.ActionsEnum.Edit)));
                db.SaveChanges();
            }
            object data = new
            {
                Settings  = db.UserSettings.Where(val => val.UserID == userID && val.Name.IndexOf(settingsName) == 0).ToList().Select(val => val.ToJson()).ToList(),
                WorkTypes = db.WorkTypes.Where(val => !val.Deleted).ToList().Select(val => val.ToJson()).ToList()
            };

            ViewBag.Data = serializer.Serialize(data);
            ViewBag.Page = "Helpers.WorkTypes";
            return(View());
        }
Exemplo n.º 10
0
        protected bool AuthenticateUser(string Login, string Password, bool RememberMe = false)
        {
            FormsIdentity    id;
            GenericPrincipal principal;
            HttpCookie       cookie;
            string           hash;

            Models.User             user;
            Models.BuildingEntities db;
            string shaPassword = string.Empty;
            FormsAuthenticationTicket ticket;

            Models.MembershipProvider mp;

            mp = new Models.MembershipProvider();
            if (mp.ValidateUser(Login, Password))
            {
                using (db = new Models.BuildingEntities())
                {
                    user = db.Users.FirstOrDefault(u => u.Login == Login && !u.Deleted);
                    user.RoleReference.Load();
                    user.LastLoginDate = DateTime.Now;
                    db.SaveChanges();
                }
            }
            else
            {
                return(false);
            }

            FormsAuthentication.Initialize();

            ticket = GetAuthorizationCook(user, RememberMe, out hash);

            cookie = new HttpCookie(FormsAuthentication.FormsCookieName, hash);

            if (ticket.IsPersistent)
            {
                cookie.Expires = ticket.Expiration;
            }
            cookie.Expires = ticket.Expiration;
            HttpContext.Response.Cookies.Remove(FormsAuthentication.FormsCookieName);
            HttpContext.Response.Cookies.Add(cookie);

            id               = new FormsIdentity(ticket);
            principal        = new GenericPrincipal(id, ticket.UserData.Split('|'));
            HttpContext.User = principal;
            HttpContext.Session[FormsAuthentication.FormsCookieName] = user;

            return(true);
        }
Exemplo n.º 11
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);
        }
Exemplo n.º 12
0
        public static void SetValue(string Name, string Value)
        {
            BuildingEntities db = new BuildingEntities();
            SystemSetting    ss = db.SystemSettings.FirstOrDefault(val => val.Name == Name);

            if (ss == null)
            {
                ss       = new SystemSetting();
                ss.Name  = Name;
                ss.Value = Value;
                ss.Date  = DateTime.Now;
                ss.Title = Name;
                db.SystemSettings.AddObject(ss);
            }

            ss.Value = Value;
            db.SaveChanges();
            db.Dispose();
        }
Exemplo n.º 13
0
        public override JsonResult SaveUserSettings(string Name, string Value)
        {
            BuildingEntities db   = this.db as BuildingEntities;
            User             user = HttpContext.CurrentUser();
            int userID            = user.ID;

            Models.UserSetting setting = db.UserSettings.FirstOrDefault(val => val.Name == Name && val.UserID == userID);

            if (setting == null)
            {
                setting        = new UserSetting();
                setting.Name   = Name;
                setting.UserID = userID;
                db.UserSettings.AddObject(setting);
            }

            setting.Value = Value;
            db.SaveChanges();

            return(Json(setting.ToJson()));
        }
Exemplo n.º 14
0
        public JsonResult Document(int ID, int TypeID, int[] WorkIDs)
        {
            string GeneratedFolder = "GeneratedFiles";

            User               user     = HttpContext.CurrentUser();
            ProjectFileType    fileType = db.ProjectFileTypes.FirstOrDefault(val => val.ID == TypeID);
            Project            project  = db.Projects.FirstOrDefault(val => val.ID == ID);
            List <ProjectWork> allWorks = db.ProjectWorks.Where(val => val.ProjectID == ID).OrderBy(val => val.OrderNumber).ThenBy(val => val.ID).ToList();
            List <ProjectWork> works    = WorkIDs != null?allWorks.Where(val => val.ProjectID == ID && WorkIDs.Contains(val.ID)).OrderBy(val => val.OrderNumber).ThenBy(val => val.ID).ToList() : allWorks;

            ProjectFile result;

            //works[0].Cost
            if (fileType == null || project == null)
            {
                return(Json(new { Success = false }));
            }

            AdCrm.Models.DynamicDocuments.DataProvider dp = new AdCrm.Models.DynamicDocuments.DataProvider()
            {
                Data    = works,
                Number  = "0",
                User    = db.CurrentUser,
                Project = project
            };

            if (!string.IsNullOrEmpty(fileType.Condition) && !DynamicDocumentGenerator.Helpers.Reflection.CheckStringCondition(dp, fileType.Condition, false))
            {
                return(Json(new { Success = false, Error = fileType.ErrorMessage }));
            }

            result = new ProjectFile()
            {
                TypeID     = TypeID,
                CategoryID = (int)BuildingEntities.ProjectFileCategoriesEnum.Generated,
                ProjectID  = ID,
                File       = new File()
                {
                    ChangeDate = DateTime.Now,
                    ChangerID  = user.ID,
                    CreateDate = DateTime.Now,
                    CreatorID  = user.ID,
                    Name       = string.Format(fileType.ResultNameTemplate, project.Contract != null ? project.Contract.Number : "", DateTime.Now).Replace(System.IO.Path.GetInvalidFileNameChars(), "_"),
                    Url        = ""
                }
            };
            db.ProjectFiles.AddObject(result);
            db.SaveChanges();

            //dp.Number = report.ID.ToString();
            result.File.Url = string.Format("{0}/{1}", GeneratedFolder, result.File.ID + "_" + fileType.FileName);

            System.IO.FileInfo fi = new System.IO.FileInfo(result.File.RealPath);
            if (!fi.Directory.Exists)
            {
                System.IO.Directory.CreateDirectory(fi.DirectoryName);
            }

            DynamicDocumentGenerator.Generator g = new DynamicDocumentGenerator.Generator(fileType, dp);
            g.BeforeGetValueFromString += (s, e) =>
            {
                if (e.Variable.Name == "{NumberInEstimation}")
                {
                    ProjectWork pw = e.Context as ProjectWork;
                    if (pw != null)
                    {
                        e.Value = allWorks.IndexOf(pw) + 1;
                        e.Stop  = true;
                    }
                }
            };
            g.Generate();
            System.IO.File.WriteAllBytes(result.File.RealPath, g.ResultContent);

            db.SaveChanges();

            return(Json(new { Success = true, ProjectFile = result.ToJson() }));
        }
Exemplo n.º 15
0
        public Models.File UploadFiles(int FileID, int?FolderID, out int Code, out string Message, bool Watermark = true)
        {
            HttpRequest Request = HttpContext.Current.Request;
            User        user    = Request.RequestContext.HttpContext.CurrentUser();

            if (Request.Files.Count < 1)
            {
                Code    = 202;
                Message = "No file posted.";
                return(null);
            }
            BuildingEntities db   = this.db as BuildingEntities;
            HttpPostedFile   item = Request.Files[0];

            Models.File   file = null;
            Models.Folder folder = null;
            string        path, folderName = "UploadedFiles";
            string        fname = item.FileName.ToLower();

            if (fname == "image_file")
            {
                fname = string.Format("img_{0:yyyyMMddHHmmss}.png", DateTime.Now);
            }
            string ext = System.IO.Path.GetExtension(fname).Replace(".", string.Empty).ToLower();
            //FileType ft = db.FileTypes.FirstOrDefault(val => val.Allow && val.Extension.Contains(ext) && val.Watermark == Watermark);
            //ft = ft ?? db.FileTypes.FirstOrDefault(val => val.Allow && val.Extension.Contains(ext));
            DirectoryInfo di;

            if (user == null)
            {
                user = db.Users.FirstOrDefault(val => val.RoleID == (int)RolesEnum.Admin);
            }

            if (FolderID > 0)
            {
                folder = db.Folders.FirstOrDefault(val => val.ID == FolderID);
                if (folder == null)
                {
                    Code    = 202;
                    Message = "Invalid folder";
                    return(null);
                }
                if (folder.Url.IsNullOrEmpty())
                {
                    folder.FillUrl();
                }
                folderName = folder.Url;
            }

            //if (ft == null)
            //{
            //    Code = 202;
            //    Message = "Incorrect extension";
            //    return null;
            //}

            //if (ft.MaxSize > 0 && ft.MaxSize * 1024 < item.ContentLength)
            //{
            //    Code = 202;
            //    Message = "Incorrect size";
            //    return null;
            //}

            if (FileID > 0)
            {
                file = db.Files.FirstOrDefault(val => val.ID == FileID);
            }

            if (file == null)
            {
                file = new Models.File();
                db.Files.AddObject(file);
            }
            else
            {
                file.RemoveFile();
            }

            path = string.Format("{0}/{1}", HttpRuntime.AppDomainAppPath, folderName);
            di   = new DirectoryInfo(path);

            if (!di.Exists)
            {
                di.Create();
            }

            file.Name = fname;
            file.Url  = string.Format("{0}/{1}", folderName, this.GetNextFileName(fname, path));
            //file.TypeID = ft.ID;
            file.CreateDate = file.ChangeDate = DateTime.Now;
            file.CreatorID  = file.ChangerID = user.ID;
            if (FolderID > 0)
            {
                file.FolderID = FolderID;
            }
            if (folder != null && folder.ProjectID.HasValue)
            {
                ProjectFile pfile = new ProjectFile()
                {
                    File = file, ProjectID = folder.ProjectID.Value
                };
                db.ProjectFiles.AddObject(pfile);

                List <int?> taskIDs = db.ProjectFiles.Where(val => val.File.FolderID == folder.ID).Select(val => val.ProjectTaskID).Distinct().ToList();
                if (taskIDs.Count == 1)
                {
                    pfile.ProjectTaskID = taskIDs.First();
                }
            }
            path = file.RealPath;

            //if (Watermark && ft.Watermark)
            //{
            //    string wpath = Settings.WatermarkImage;
            //    wpath = wpath.StartsWith("/") ? Path.Combine(HttpRuntime.AppDomainAppPath, wpath.Trim('/')) : wpath;
            //    var bmp3 = new System.Drawing.Bitmap(wpath);

            //    MemoryStream ms = new MemoryStream();
            //    Helpers.ImageHelper.AddWaterMarkCenter(item.InputStream, bmp3, ms);
            //    ms.Flush();

            //    var bmp1 = new System.Drawing.Bitmap(ms);
            //    Helpers.ImageHelper.CreateThumbnailImage(bmp1, path, 1024, -1, -1, 70);
            //    bmp1.Dispose();

            //    ms.Dispose();

            //    bmp3.Dispose();

            //    path = Path.Combine(ft.Folder, this.GetNextFileName(item.FileName, folder));
            //    file.OriginUrl = path.Replace('\\', '/');
            //    path = file.OriginPath;
            //}

            //if (ext == "jpg" || ext == "png")
            //{
            //    try
            //    {
            //        var bmp1 = new System.Drawing.Bitmap(item.InputStream);
            //        Helpers.ImageHelper.CreateThumbnailImage(bmp1, path, 1024, -1, -1, 70);
            //        bmp1.Dispose();
            //    }
            //    catch
            //    {
            //        item.SaveAs(path);
            //    }
            //}
            //else
            //{
            item.SaveAs(path);
            //}

            db.SaveChanges();

            Code    = 200;
            Message = string.Empty;

            return(file);
        }
Exemplo n.º 16
0
        public ActionResult UploadToTask(int ProjectID, int?TaskID, string TaskName)
        {
            BuildingEntities db   = (BuildingEntities)this.db;
            User             user = HttpContext.CurrentUser();

            if (Request.Files.Count < 1)
            {
                return(Json(new { Code = 202, Success = false, Message = "No files uploaded!" }));
            }

            Project project = db.Projects.FirstOrDefault(val => val.ID == ProjectID);

            if (project == null)
            {
                return(Json(new { Code = 202, Success = false, Message = "Project not found!" }));
            }

            CheckPermissionsEventArgs e = new CheckPermissionsEventArgs(db, "Projects", "Project", project, EntityJs.Client.Events.ActionsEnum.Select);

            project.OnCheckPermissions(e);
            if (e.Cancel)
            {
                return(Json(new { Code = 202, Success = false, Message = "You can't operate with this project!" }));
            }

            ProjectTask task = null;

            if (TaskID > 0)
            {
                task = db.ProjectTasks.FirstOrDefault(val => val.ID == TaskID);
                if (task == null)
                {
                    return(Json(new { Code = 202, Success = false, Message = "Task not found!" }));
                }

                e = new CheckPermissionsEventArgs(db, "ProjectTasks", "ProjectTask", task, EntityJs.Client.Events.ActionsEnum.Edit);
                task.OnCheckPermissions(e);
                if (e.Cancel)
                {
                    return(Json(new { Code = 202, Success = false, Message = "You can't edit this task!" }));
                }
            }

            int              code;
            string           message;
            UploadFileHelper helper = new UploadFileHelper(this.db as BuildingEntities);

            Folder folder = helper.GetFolder(project, TaskName, true);

            Models.File        file  = helper.UploadFiles(-1, folder.ID, out code, out message, false);
            Models.ProjectFile pfile = file != null?file.ProjectFiles.FirstOrDefault(val => val.ProjectID == ProjectID) : null;

            if (pfile != null)
            {
                pfile.ProjectTask = task;
                db.SaveChanges();
            }
            var data = new { Code = code, Message = message, File = file != null?file.ToJson() : null, ProjectFile = pfile != null?pfile.ToJson() : null };

            return(this.Json(data));
        }