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 })); }
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 })); }