コード例 #1
0
        public ActionResult Checkout(ViewModels.Assets.AssetViewModel viewModel)
        {
            Common.Models.Account.Users currentUser;

            Common.Models.Assets.Asset asset;

            asset = Mapper.Map <Common.Models.Assets.Asset>(viewModel);

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

                    Data.Assets.Asset.Checkout(trans, viewModel.Id.Value, currentUser);

                    trans.Commit();
                }
                catch (Exception ex)
                {
                    trans.Rollback();
                    throw ex;
                }
            }

            return(RedirectToAction("Details", new { Id = asset.Id }));
        }
コード例 #2
0
        public ActionResult Edit(Guid id, ViewModels.Assets.AssetViewModel viewModel)
        {
            Common.Models.Account.Users currentUser;

            // FS layout
            // Asset/Version/File
            Common.Models.Assets.Asset asset;

            asset = Mapper.Map <Common.Models.Assets.Asset>(viewModel);

            using (Data.Transaction trans = Data.Transaction.Create())
            {
                try
                {
                    currentUser = Data.Account.Users.Get(User.Identity.Name);
                    Common.Models.Matters.Matter matter = Data.Matters.Matter.Get(trans, id);

                    Data.Assets.Asset.Edit(trans, asset, currentUser);

                    viewModel.Tags = new List <ViewModels.Assets.TagViewModel>();
                    Request.Params["Tags"].Split(',').ToList().ForEach(x =>
                    {
                        viewModel.Tags.Add(new ViewModels.Assets.TagViewModel()
                        {
                            Name = x.Trim()
                        });
                    });

                    // Disassociate all asset_asset_tags for this asset
                    Data.Assets.AssetTag.DeleteAllForAsset(trans, asset.Id.Value);

                    foreach (ViewModels.Assets.TagViewModel tag in viewModel.Tags)
                    {
                        if (tag != null)
                        {
                            Common.Models.Assets.Tag mTag = Mapper.Map <Common.Models.Assets.Tag>(tag);
                            Data.Assets.Tag.Create(trans, mTag, currentUser);

                            Data.Assets.AssetTag.Create(trans, new Common.Models.Assets.AssetTag()
                            {
                                Asset = asset, Tag = mTag
                            }, currentUser);
                        }
                    }

                    trans.Commit();
                }
                catch (Exception ex)
                {
                    trans.Rollback();
                }
            }

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