public ActionResult Edit(ViewModels.Assets.FileViewModel viewModel)
        {
            Common.Models.Account.Users currentUser;
            Common.Models.Assets.File   file;

            using (Data.Transaction trans = Data.Transaction.Create())
            {
                try
                {
                    currentUser = Data.Account.Users.Get(User.Identity.Name);
                    file        = Data.Assets.File.Get(trans, viewModel.Id.Value);
                    Common.Models.Assets.Version version = Data.Assets.Version.Get(trans, file.Version.Id.Value);


                    file = Mapper.Map <Common.Models.Assets.File>(viewModel);

                    file = Data.Assets.File.Edit(trans, file, currentUser);

                    trans.Commit();

                    return(RedirectToAction("Details", "Assets", new { Id = version.Asset.Id.Value }));
                }
                catch (Exception ex)
                {
                    trans.Rollback();

                    throw ex;
                }
            }
        }
Example #2
0
        public ActionResult Details(Guid id)
        {
            ViewModels.Assets.AssetViewModel viewModel;
            Common.Models.Assets.Asset       model;
            Common.Models.Matters.Matter     matter;

            using (IDbConnection conn = Data.Database.Instance.GetConnection())
            {
                model  = Data.Assets.Asset.Get(id, conn, false);
                matter = Data.Assets.Asset.GetRelatedMatter(id, conn, false);

                viewModel = Mapper.Map <ViewModels.Assets.AssetViewModel>(model);

                if (model.CheckedOutBy != null && model.CheckedOutBy.PId.HasValue)
                {
                    model.CheckedOutBy     = Data.Account.Users.Get(model.CheckedOutBy.PId.Value, conn, false);
                    viewModel.CheckedOutBy = Mapper.Map <ViewModels.Account.UsersViewModel>(model.CheckedOutBy);
                }

                viewModel.Versions = new List <ViewModels.Assets.VersionViewModel>();
                viewModel.Tags     = new List <ViewModels.Assets.TagViewModel>();

                Data.Assets.Tag.ListForAsset(model.Id.Value, conn, false).ForEach(tag =>
                {
                    viewModel.Tags.Add(Mapper.Map <ViewModels.Assets.TagViewModel>(tag));
                });

                Data.Assets.Version.ListForAsset(model.Id.Value, conn, false).ForEach(version =>
                {
                    ViewModels.Assets.VersionViewModel versionVM = Mapper.Map <ViewModels.Assets.VersionViewModel>(version);
                    versionVM.Files = new List <ViewModels.Assets.FileViewModel>();
                    viewModel.Versions.Add(versionVM);
                    Data.Assets.File.ListForVersion(version.Id.Value, conn, false).ForEach(file =>
                    {
                        ViewModels.Assets.FileViewModel fileVM = Mapper.Map <ViewModels.Assets.FileViewModel>(file);
                        versionVM.Files.Add(fileVM);
                    });
                });

                PopulateCoreDetails(viewModel, conn);
            }

            ViewBag.Matter = matter;

            return(View(viewModel));
        }