public ActionResult Edit(Guid id, ViewModels.Assets.VersionViewModel viewModel)
        {
            Common.Models.Account.Users currentUser;

            Common.Models.Assets.Version version;
            Guid assetId = Guid.Empty;

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

                    // Current
                    version = Data.Assets.Version.Get(trans, id);
                    assetId = version.Asset.Id.Value;

                    // Update
                    version = Mapper.Map <Common.Models.Assets.Version>(viewModel);

                    version = Data.Assets.Version.Edit(trans, version, currentUser);

                    trans.Commit();

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

                    throw ex;
                }
            }
        }
Esempio n. 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));
        }