public ActionResult Close(long id, ViewModels.Tasks.TaskViewModel viewModel)
        {
            Common.Models.Account.Users currentUser;
            Common.Models.Tasks.Task    model;

            using (Data.Transaction trans = Data.Transaction.Create(true))
            {
                try
                {
                    currentUser = Data.Account.Users.Get(trans, User.Identity.Name);

                    model           = Data.Tasks.Task.Get(trans, id);
                    model.Active    = false;
                    model.ActualEnd = DateTime.Now;

                    model = Data.Tasks.Task.Edit(trans, model, currentUser);

                    if (!string.IsNullOrEmpty(Request["NewTask"]) && Request["NewTask"] == "on")
                    { // not empty & "on"
                        Common.Models.Matters.Matter matter = Data.Tasks.Task.GetRelatedMatter(trans, id);
                        return(RedirectToAction("Create", "Tasks", new { MatterId = matter.Id }));
                    }

                    trans.Commit();

                    return(RedirectToAction("Details", new { Id = id }));
                }
                catch
                {
                    trans.Rollback();
                    return(Close(id));
                }
            }
        }
        public ActionResult Edit(long id, ViewModels.Tasks.TaskViewModel viewModel)
        {
            Common.Models.Account.Users  currentUser;
            Common.Models.Tasks.Task     model;
            Common.Models.Matters.Matter matterModel;
            Common.Models.Tasks.Task     currentModel;

            currentUser = Data.Account.Users.Get(User.Identity.Name);

            model = Mapper.Map <Common.Models.Tasks.Task>(viewModel);

            matterModel = Data.Tasks.Task.GetRelatedMatter(id);

            currentModel = Data.Tasks.Task.Get(id);

            if (model.Parent != null && model.Parent.Id.HasValue)
            {
                if (model.Parent.Id.Value == model.Id.Value)
                {
                    //  Task is trying to set itself as its parent
                    ModelState.AddModelError("Parent.Id", "Parent cannot be the task itself.");

                    ViewData["MatterId"] = matterModel.Id.Value;
                    ViewData["Matter"]   = matterModel.Title;

                    return(View(viewModel));
                }
            }

            model.Description = new Ganss.XSS.HtmlSanitizer().Sanitize(model.Description);
            model             = Data.Tasks.Task.Edit(model, currentUser);

            return(RedirectToAction("Details", new { Id = id }));
        }
        public ActionResult Tasks(Guid id)
        {
            List <ViewModels.Tasks.TaskViewModel> list;

            list = new List <ViewModels.Tasks.TaskViewModel>();

            Data.Events.EventTask.ListForEvent(id).ForEach(x =>
            {
                ViewModels.Tasks.TaskViewModel vm = Mapper.Map <ViewModels.Tasks.TaskViewModel>(x);
                list.Add(vm);
            });

            return(View(list));
        }
        public ActionResult Close(long id, ViewModels.Tasks.TaskViewModel viewModel)
        {
            Common.Models.Account.Users currentUser;
            Common.Models.Tasks.Task    model;

            currentUser = Data.Account.Users.Get(User.Identity.Name);

            model           = Data.Tasks.Task.Get(id);
            model.Active    = false;
            model.ActualEnd = DateTime.Now;

            model = Data.Tasks.Task.Edit(model, currentUser);

            if (!string.IsNullOrEmpty(Request["NewTask"]) && Request["NewTask"] == "on")
            { // not empty & "on"
                Common.Models.Matters.Matter matter = Data.Tasks.Task.GetRelatedMatter(id);
                return(RedirectToAction("Create", "Tasks", new { MatterId = matter.Id }));
            }

            return(RedirectToAction("Details", new { Id = id }));
        }