/// <summary> /// Update album /// </summary> /// <param name="request"></param> /// <returns></returns> public PostEditResponseModel UpdateAlbum(UpdateAlbumRequestModel request) { if (AllowApi) if (!CheckApi(new Guid(request.ApiKey))) return new PostEditResponseModel() { Code = "-2", Message = "Not allow this function for this API key. Please check again" }; using (var tx = new TransactionScope()) { try { var albumId = new Guid(request.AlbumId); var album = DataContext.Albums.SingleOrDefault(al => al.AlbumId == albumId); if (album == null) return new PostEditResponseModel { Code = "-1", Message = "Cannot find this album" }; //Update album category //Get album category var cat = (from relation in DataContext.Relations join cate in DataContext.Categories on relation.RelationRelatedId equals cate.CategoryId where relation.RelationDataId == album.AlbumId select cate).ToList(); //Album not in category if (cat.Count == 0) { //Add new relation for this category and album DataContext.Relations.Add(new Relation() { RelationDataId = album.AlbumId, RelationRelatedId = new Guid(request.CategoryId), RelationType = "ALBUM_CATEGORY", RelationId = Guid.NewGuid() }); } else { if (cat[0].CategoryId != new Guid(request.CategoryId)) { //Remove last relation var relation = DataContext.Relations.Where(r => r.RelationDataId == album.AlbumId).ToList(); relation.ForEach(r => DataContext.Relations.Remove(r)); //Add new relation DataContext.Relations.Add(new Relation() { RelationDataId = album.AlbumId, RelationRelatedId = new Guid(request.CategoryId), RelationType = "ALBUM_CATEGORY", RelationId = Guid.NewGuid() }); } } album.AlbumTitle = request.AlbumTitle; album.AlbumUpdateDate = DateTime.UtcNow; album.AlbumContent = request.AlbumContent; album.Tags = request.Tags; var result = DataContext.SaveChanges(); tx.Complete(); return new PostEditResponseModel { Code = "1", Message = result.ToString() }; } catch (Exception ex) { tx.Dispose(); return new PostEditResponseModel { Code = "-1", Message = ex.Message }; } } }
public ActionResult Image(Models.AlbumViewModel model) { if (ModelState.IsValid) { var updateModel = new UpdateAlbumRequestModel { AlbumId = model.AlbumId, AlbumContent = model.AlbumContent, AlbumTitle = model.AlbumTitle, CategoryId = model.CategoryId, Tags = model.Tags }; var result = PostRepository.UpdateAlbum(updateModel); if (result.Code != "1") ModelState.AddModelError("", result.Message); else ViewData["Success"] = true; } var cate = PostRepository.GetCategories(); var listCate = cate.Categories.Select(item => new SelectListItem() { Selected = item.CategoryId == model.CategoryId, Text = item.CategoryName, Value = item.CategoryId }).ToList(); model.Categories = listCate; return View(model); }