Ejemplo n.º 1
0
        public IHttpActionResult Post([FromBody] CreateKMCModel model)
        {
            if (model.IsPublic)
            {
                ModelState.Remove("model.RoleIds");
            }

            if (model.IsEditor)
            {
                ModelState.Remove("model.File");
                ModelState.Remove("model.Type");
            }
            else
            {
                ModelState.Remove("model.EditorCode");
            }

            if (ModelState.IsValid)
            {
                var kmc = new KMCs
                {
                    KMCCategoryId = model.KMCCategoryId,
                    Title         = model.Title,
                    Description   = model.Description,
                    Thumbnail     = model.ThumbnailUrl,
                    IsEditor      = model.IsEditor,
                    KMCType       = model.Type,
                    FileId        = model.FileId,
                    FileType      = model.FileType,
                    EditorCode    = model.EditorCode,
                    IsPublic      = model.IsPublic,
                    IsShow        = model.IsShow,
                    CreatedBy     = model.CreatedBy,
                    CreatedDate   = DateTime.Now
                };

                if (!model.IsPublic && model.RoleIds != null)
                {
                    foreach (var roleid in model.RoleIds)
                    {
                        var kmcrole = new KMCRole
                        {
                            RoleId = roleid,
                            KMC    = kmc,
                        };

                        db.KMCRole.Add(kmcrole);
                    }
                }

                db.KMCs.Add(kmc);

                db.SaveChanges();

                return(Ok(kmc.Id));
            }

            return(BadRequest(ModelState));
        }
Ejemplo n.º 2
0
        public IHttpActionResult Put(int id, [FromBody] EditKMCModel model)
        {
            if (model.IsPublic)
            {
                ModelState.Remove("model.RoleIds");
            }

            if (model.IsEditor)
            {
                ModelState.Remove("model.File");
                ModelState.Remove("model.Type");
            }
            else
            {
                ModelState.Remove("model.EditorCode");
            }

            var kmc = db.KMCs.Where(s => s.Id == id).FirstOrDefault();

            if (kmc != null)
            {
                if (ModelState.IsValid)
                {
                    kmc.Title       = model.Title;
                    kmc.Description = model.Description;
                    kmc.Thumbnail   = model.ThumbnailUrl;
                    kmc.IsEditor    = model.IsEditor;
                    kmc.KMCType     = model.Type;
                    kmc.FileId      = model.FileId;
                    kmc.FileType    = model.FileType;
                    kmc.EditorCode  = model.EditorCode;
                    kmc.IsPublic    = model.IsPublic;
                    kmc.IsShow      = model.IsShow;

                    db.Entry(kmc).State = EntityState.Modified;
                    db.Entry(kmc).Property(x => x.KMCCategoryId).IsModified = false;

                    db.KMCRole.RemoveRange(db.KMCRole.Where(k => k.KMCId == id));//remove all

                    if (!model.IsPublic && model.RoleIds != null)
                    {
                        foreach (var roleid in model.RoleIds)
                        {
                            var kmcrole = new KMCRole
                            {
                                RoleId = roleid,
                                KMC    = kmc,
                            };

                            db.KMCRole.Add(kmcrole);
                        }
                    }

                    db.SaveChanges();

                    return(Ok(true));
                }
                else
                {
                    return(BadRequest(ModelState));
                }
            }
            else
            {
                return(NotFound());
            }
        }