private List<dynamic> GetTasks(DateTime startDate, DateTime endDate)
        {
            var taskManager = new DataAccess.TaskManager();
            var isOfficeAdmin = UserDetail.User.Roles.Any(role => new List<int> { 1, 2 }.Contains(role.RoleId));
            var taskList = new List<DataModel.Modal.Task>();

            if (IsAdmin)
            {
                taskList = taskManager.GetTasks(startDate, endDate, 0).Where(model => model.UsersDetail == null).ToList();
            }
            else if (isOfficeAdmin)
            {
                var officeIDs = UserDetail.Offices.Where(model => model.IsDeleted == false).Select(model => model.OfficeId).ToList();
                taskList = taskManager.GetTasks(startDate, endDate, 0).Where(model => officeIDs.Contains(model.Office.OfficeId)).ToList();
            }
            else
            {
                taskList = taskManager.GetTasks(startDate, endDate, UserDetail.UserId).ToList();
            }
            return taskList.Select(model => new
            {
                type = "TASK",
                id = model.TaskId,
                className = "Calender-Event",
                title = model.Name,
                start = model.StartDate.ToString("yyyy-MM-ddThh:mm:ss"),
                end = model.EndDate.ToString("yyyy-MM-ddThh:mm:ss"),
                imageURL = model.UsersDetail == null ? (model.Office == null ? "Content/Images/Common/avatar.png" : Url.Content(model.Office.FileResource.path)) : Url.Content(model.UsersDetail.FileResource.path)
            }).ToList<dynamic>();
        }
 public ActionResult Edit(int id)
 {
     var officeMananer = new DataAccess.OfficeMananer();
     var taskManager = new DataAccess.TaskManager();
     var task = taskManager.GetTask(id);
     var offices = officeMananer.GetOffices(IsAdmin ? 0 : UserDetail.UserId);
     ViewData["Offices"] = offices.Where(model => model.IsDeleted == false).ToList();
     return PartialView(task);
 }
 public JsonResult GetTasks(string startDate, string endDate)
 {
     var startDateTime = Convert.ToDateTime(startDate);
     var endDateTime = Convert.ToDateTime(endDate);
     var isUpdateEnable = false;
     var taskManager = new DataAccess.TaskManager();
     var isOfficeAdmin = UserDetail.User.Roles.Any(role => new List<int> { 1, 2 }.Contains(role.RoleId));
     List<DataModel.Modal.Task> taskList;
     if (IsAdmin)
     {
         taskList = taskManager.GetTasks(startDateTime, endDateTime, 0).Where(model => model.UsersDetail == null).ToList();
         isUpdateEnable = true;
     }
     else if (isOfficeAdmin)
     {
         var officeIDs = UserDetail.Offices.Where(model => model.IsDeleted == false).Select(model => model.OfficeId).ToList();
         taskList = taskManager.GetTasks(startDateTime, endDateTime, 0).Where(model => officeIDs.Contains(model.Office.OfficeId)).ToList();
     }
     else
     {
         taskList = taskManager.GetTasks(startDateTime, endDateTime, UserDetail.UserId).ToList();
     }
     var tasks = taskList
         .Select(model => new
         {
             ID = model.TaskId,
             Title = model.Name,
             DueDate = model.EndDate.ToString("dd-MM-yyyy"),
             AssignTo = (model.UsersDetail == null ? model.Office.Name : (model.UsersDetail.UserId == UserDetail.UserId) ? "Me" : (model.UsersDetail.User.FirstName + " " + model.UsersDetail.User.LastName)),
             Status = model.IsCompleted,
             OfficeID = model.Office.OfficeId,
             UserID = (model.UsersDetail == null ? 0 : model.UsersDetail.UserId),
             IsUpdateEnable = isUpdateEnable ? isUpdateEnable : (model.UsersDetail != null && isOfficeAdmin ? true : false)
         }).ToList();
     return Json(new
     {
         data = tasks
     });
 }
 public PartialViewResult GetDetail(int id)
 {
     var taskManager = new DataAccess.TaskManager();
     var task = taskManager.GetTask(id);
     return PartialView(task);
 }
 public JsonResult Delete(int id)
 {
     var taskManager = new DataAccess.TaskManager();
     var status = taskManager.Delete(id);
     return Json(status);
 }
 public JsonResult Add(string name, string startDate, string endDate, string description, int officeID, int userID)
 {
     var taskManager = new DataAccess.TaskManager();
     var status = taskManager.Add(name, startDate, endDate, description, officeID, userID);
     return Json(status);
 }
 public PartialViewResult UploadAttachment(int id)
 {
     var taskManager = new DataAccess.TaskManager();
     var taskDetail = taskManager.GetTask(id);
     return PartialView(taskDetail);
 }
 public object GetTaskTargets(int id, DateTime startDate, DateTime endDate)
 {
     var taskManager = new DataAccess.TaskManager();
     var tasks = taskManager.GetTasks(startDate, endDate, id, 0);
     var totalTask = tasks.Count();
     var totalTaskCompleted = tasks.Where(model => model.IsCompleted == true && model.UsersDetail == null).Count();
     return new { Total = totalTask, ActTotal = totalTaskCompleted };
 }
 public object GetTaskForCurrentWeek(int id, DateTime startDate, DateTime endDate)
 {
     var isUpdateEnable = false;
     var isOfficeAdmin = UserDetail.User.Roles.Any(role => new List<int> { 1, 2 }.Contains(role.RoleId));
     var currentYear = DateTime.Now.Year;
     var currentWeek = Utilities.DateTimeUtilities.GetIso8601WeekOfYear(DateTime.Now);
     var taskManager = new DataAccess.TaskManager();
     List<DataModel.Modal.Task> taskList;
     if (IsAdmin)
     {
         taskList = taskManager.GetTasks(startDate, endDate, id, 0).Where(model => model.UsersDetail == null).ToList();
         isUpdateEnable = true;
     }
     else if (isOfficeAdmin)
     {
         taskList = taskManager.GetTasks(startDate, endDate, id, 0).ToList();
     }
     else
     {
         taskList = taskManager.GetTasks(startDate, endDate, id, UserDetail.UserId).ToList();
     }
     return taskList.Select(model => new
     {
         ID = model.TaskId,
         Name = model.Name,
         EndDate = model.EndDate.ToString("MM dd,yyyy"),
         Description = model.Description,
         AssignTo = model.UsersDetail == null ? "Me" : (model.UsersDetail.User.FirstName + " " + model.UsersDetail.User.LastName),
         IsCompleted = model.IsCompleted,
         IsUpdateEnable = isUpdateEnable ? isUpdateEnable : (model.UsersDetail != null && isOfficeAdmin ? true : false)
     }).ToList();
 }