Exemple #1
0
        /// <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
                        };
                }
            }
        }
Exemple #2
0
        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);
        }