public bool SaveLog(Database.Task taskModel, string action = "Updated")
        {
            base.DBInit();

            if (taskModel != null)
            {
                DateTime?AlertDate = null;
                if (taskModel.TaskUserAlerts != null && taskModel.TaskUserAlerts.Count() > 0)
                {
                    AlertDate = taskModel.TaskUserAlerts.FirstOrDefault().AlertDate;
                }
                var logModel = new Database.TaskLog
                {
                    AlertDate         = AlertDate,
                    TaskId            = taskModel.Id,
                    RequestedBy       = taskModel.RequestedBy,
                    Subject           = taskModel.Subject,
                    TaskDescription   = taskModel.TaskDescription,
                    BusinessId        = taskModel.BusinessId,
                    TaskRequestTypeId = taskModel.TaskRequestTypeId,
                    ReferenceNumber   = taskModel.ReferenceNumber,
                    PracticeId        = taskModel.PracticeId,
                    PriorityTypeId    = taskModel.PriorityTypeId,
                    TargetDate        = taskModel.TargetDate,
                    ClosingDate       = taskModel.ClosingDate,
                    IsActive          = taskModel.IsActive,
                    Status            = taskModel.Status,
                    Action            = action,
                    CreatedOn         = taskModel.CreatedOn,
                    CreatedBy         = taskModel.CreatedBy
                };

                if (taskModel.TaskUsers != null)
                {
                    foreach (var taskUser in taskModel.TaskUsers)
                    {
                        var objUser = DBEntity.Users.FirstOrDefault(a => a.Id == taskUser.UserId);

                        if (taskUser.IsWatcher.HasValue && taskUser.IsWatcher.Value)
                        {
                            logModel.Watchers = string.Format("{0}{1}", string.IsNullOrEmpty(logModel.Watchers) ? string.Empty : logModel.Watchers + ",",
                                                              string.Format("{{\"Name\":\"{0} {1}\",\"Id\":{2}}}", objUser.FirstName, objUser.LastName, objUser.Id));
                        }
                        else
                        {
                            logModel.AssignedTo = string.Format("{{\"Name\":\"{0} {1}\",\"Id\":{2}}}", objUser.FirstName, objUser.LastName, objUser.Id);
                        }
                    }
                }

                logModel.Watchers   = string.Format("[{0}]", logModel.Watchers);
                logModel.AssignedTo = string.Format("[{0}]", logModel.AssignedTo);

                return(base.DBSave(logModel) > 0);
            }

            return(false);
        }
        public DataResponse <bool> DeleteFile(int FileId)
        {
            var response = new DataResponse <bool>();

            try
            {
                base.DBInit();

                var model = DBEntity.TaskAttachments.FirstOrDefault(a => a.Id == FileId);
                if (model != null)
                {
                    var task = DBEntity.Tasks.Where(a => a.Id == model.TaskId).FirstOrDefault();

                    DateTime?AlertDate = null;
                    var      taskAlert = task.TaskUserAlerts.FirstOrDefault();
                    if (taskAlert != null)
                    {
                        AlertDate = taskAlert.AlertDate;
                    }

                    var logModel = new Database.TaskLog
                    {
                        Action            = "File Deleted",
                        AlertDate         = AlertDate,
                        BusinessId        = task.BusinessId,
                        ClosingDate       = task.ClosingDate,
                        CreatedBy         = task.CreatedBy,
                        CreatedOn         = task.CreatedOn,
                        Files             = model.FileName,
                        IsActive          = task.IsActive,
                        PracticeId        = task.PracticeId,
                        PriorityTypeId    = task.PriorityTypeId,
                        ReferenceNumber   = task.ReferenceNumber,
                        RequestedBy       = task.RequestedBy,
                        Status            = task.Status,
                        Subject           = task.Subject,
                        TargetDate        = task.TargetDate,
                        TaskDescription   = task.TaskDescription,
                        TaskId            = task.Id,
                        TaskRequestTypeId = task.TaskRequestTypeId
                    };

                    if (task.TaskUsers != null)
                    {
                        foreach (var taskUser in task.TaskUsers)
                        {
                            if (taskUser.IsWatcher.HasValue && taskUser.IsWatcher.Value)
                            {
                                logModel.Watchers = string.Format("{0}{1}", string.IsNullOrEmpty(logModel.Watchers) ? string.Empty : logModel.Watchers + ",",
                                                                  string.Format("{{\"Name\":\"{0} {1}\",\"Id\":{2}}}", taskUser.User.FirstName, taskUser.User.FirstName, taskUser.User.Id));
                            }
                            else
                            {
                                logModel.AssignedTo = string.Format("{0}{1}", string.IsNullOrEmpty(logModel.AssignedTo) ? string.Empty : logModel.AssignedTo + ",",
                                                                    string.Format("{{\"Name\":\"{0} {1}\",\"Id\":{2}}}", taskUser.User.FirstName, taskUser.User.FirstName, taskUser.User.Id));
                            }
                        }
                    }

                    logModel.Watchers   = string.Format("[{0}]", logModel.Watchers);
                    logModel.AssignedTo = string.Format("[{0}]", logModel.AssignedTo);

                    EntityAdd <Database.TaskLog>(logModel);

                    model.IsActive = false;
                }
                if (DBEntity.SaveChanges() > 0)
                {
                    response.Model = true;
                }
            }
            catch (Exception ex)
            {
                ex.Log();
            }
            finally
            {
                base.DBClose();
            }
            return(response);
        }