Beispiel #1
0
        public IHttpActionResult CreateChannel(ChannelBindingModel channelData)
        {
            if (channelData == null)
            {
                return(BadRequest("Missing channel data."));
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (db.Channels.All().Any(c => c.Name == channelData.Name))
            {
                return(this.Content(HttpStatusCode.Conflict,
                                    new { Message = "Duplicated channel name: " + channelData.Name }));
            }

            var channel = new Channel()
            {
                Name = channelData.Name
            };

            db.Channels.Add(channel);
            db.SaveChanges();

            return(this.CreatedAtRoute(
                       "DefaultApi",
                       new { controller = "channels", id = channel.Id },
                       new { channel.Id, channel.Name }));
        }
Beispiel #2
0
        public static Channel ToChannel(this ChannelBindingModel model, CategoryRepository categoryRepo)
        {
            var cat1 = categoryRepo.FindOrCreate(model.Category1);
            var cat2 = categoryRepo.FindOrCreate(model.Category2);
            var cat3 = categoryRepo.FindOrCreate(model.Category3);

            var channel = new Channel()
            {
                Author           = model.Author,
                Category2        = cat2,
                Category3        = cat3,
                CopyrightNotice  = model.CopyrightNotice,
                Description      = model.Description,
                FeedDefinitionID = model.FeedDefinitionID,
                ID              = model.ID,
                IsExplicit      = model.IsExplicit,
                Language        = model.Language,
                LastBuildDate   = model.LastBuildDate.HasValue ? model.LastBuildDate.Value : DateTime.Now,
                OwnerEmail      = model.OwnerEmail,
                OwnerName       = model.OwnerName,
                PrimaryCategory = cat1,
                PublicationDate = model.PublicationDate.HasValue ? model.PublicationDate.Value : DateTime.Now,
                SubTitle        = model.SubTitle,
                Title           = model.Title,
                WebmasterEmail  = model.WebmasterEmail,
                WebsiteURL      = model.WebsiteURL
            };

            if (model.Icon != null)
            {
                channel.ImageURL = new FTPClient().UploadFile(model.Icon);
            }

            return(channel);
        }
        public IHttpActionResult CreateChannel(ChannelBindingModel model)
        {
            if (model == null)
            {
                return(this.BadRequest("Empty channel data!"));
            }

            if (!this.ModelState.IsValid)
            {
                return(this.BadRequest(this.ModelState));
            }

            if (this.Data.Channels.All().Any(c => c.Name == model.Name))
            {
                this.Content(HttpStatusCode.Conflict, new { Message = "Duplicated channel name: " + model.Name });
            }

            var channel = new Channel {
                Name = model.Name
            };

            this.Data.Channels.Add(channel);
            this.Data.SaveChanges();

            return(this.Ok(new ChannelViewModel {
                Id = channel.Id, Name = channel.Name
            }));
        }
Beispiel #4
0
        public ChannelBindingModel CreateChannel(ChannelBindingModel model)
        {
            var ifParsed = Enum.TryParse(typeof(ChannelType), model.ChannelType, out var channelType);

            if (!ifParsed)
            {
                return(null);
            }

            var tags = model.Tags.Split(", ").ToList().Select(t => new Tag {
                Name = t
            }).ToHashSet();

            if (tags == null)
            {
                return(null);
            }

            var channel = new Channel
            {
                Name        = model.Name,
                Description = model.Description,
                Type        = (ChannelType)channelType,
                Tags        = tags
            };

            this.Db.Channels.Add(channel);
            this.Db.SaveChanges();

            return(model);
        }
Beispiel #5
0
        public IHttpActionResult EditChannel(int id, ChannelBindingModel model)
        {
            if (model == null || this.ModelState.IsValid)
            {
                return(this.BadRequest(this.ModelState));
            }

            if (this.Data.Channels.Any(c => c.Name == model.Name))
            {
                return(this.Conflict());
            }

            var channel = this.Data.Channels.FirstOrDefault(c => c.Id == id);

            if (channel == null)
            {
                return(this.NotFound());
            }

            channel.Name = model.Name;
            this.Data.SaveChanges();

            return(this.Ok(new
            {
                Message = string.Format("Channel #{0} edited successfully.", channel.Id)
            }));
        }
        public IHttpActionResult PostCreateNewChannel([FromBody] ChannelBindingModel model)
        {
            if (model == null)
            {
                return(this.BadRequest());
            }

            if (!this.ModelState.IsValid)
            {
                return(this.BadRequest());
            }

            var dbModel = this.Data.Channels.FirstOrDefault(c => c.Name == model.Name);

            if (dbModel != null)
            {
                return(this.Conflict());
            }

            var newChannel = new Channel()
            {
                Name = model.Name
            };

            this.Data.Channels.Add(newChannel);
            this.Data.SaveChanges();

            var viewModel = new ChannelViewModel()
            {
                Id   = newChannel.Id,
                Name = newChannel.Name
            };

            return(this.Created("http://localhost:7777/api/channels/" + viewModel.Id, viewModel));
        }
        public ActionResult Edit(ChannelBindingModel model)
        {
            if (ModelState.IsValid)
            {
                var channel = model.ToChannel(catRepo);

                repo.Update(channel);

                return(RedirectToAction("Index", new { feedDefinitionId = model.FeedDefinitionID }));
            }
            return(View(model));
        }
Beispiel #8
0
        public IActionResult Create(ChannelBindingModel model)
        {
            if (this.ModelState.IsValid == false ||
                this.channelsService.ChannelExists(model.Name))
            {
                return(this.View());
            }

            var channel = this.channelsService.CreateChannel(model);

            if (channel == null)
            {
                return(this.View());
            }

            return(this.RedirectToAction("/"));
        }
Beispiel #9
0
        public IHttpActionResult PostChannel(ChannelBindingModel model)
        {
            if (model == null || this.ModelState.IsValid)
            {
                return(this.BadRequest(this.ModelState));
            }

            if (this.Data.Channels.Any(c => c.Name == model.Name))
            {
                return(this.Conflict());
            }

            var channel = new Channel {
                Name = model.Name
            };

            this.Data.Channels.Add(channel);
            this.Data.SaveChanges();

            return(this.CreatedAtRoute("DefaultApi", new { id = channel.Id }, channel));
        }
Beispiel #10
0
        public IHttpActionResult EditChannel(int id, ChannelBindingModel channelData)
        {
            if (channelData == null)
            {
                return(BadRequest("Missing channel data."));
            }

            var channel = db.Channels.Find(id);

            if (channel == null)
            {
                return(NotFound());
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (db.Channels.All().Any(c => c.Name == channelData.Name && c.Id != id))
            {
                return(this.Content(HttpStatusCode.Conflict,
                                    new { Message = "Duplicated channel name: " + channelData.Name }));
            }

            channel.Name = channelData.Name;
            db.Channels.Update(channel);
            db.SaveChanges();

            return(this.Ok(
                       new
            {
                Message = "Channel #" + id + " edited successfully."
            }
                       ));
        }
        public IHttpActionResult PutEditExistingChannel([FromUri] int id, [FromBody] ChannelBindingModel model)
        {
            if (model == null)
            {
                return(this.BadRequest());
            }

            if (!this.ModelState.IsValid)
            {
                return(this.BadRequest());
            }

            var channelToEdit = this.Data.Channels.FirstOrDefault(c => c.Id == id);

            if (channelToEdit == null)
            {
                return(this.NotFound());
            }

            var dbModel = this.Data.Channels.FirstOrDefault(c => c.Name == model.Name);

            if (dbModel != null)
            {
                return(this.Conflict());
            }

            channelToEdit.Name = model.Name;
            this.Data.SaveChanges();

            var viewModel = new MessageViewModel()
            {
                Message = "Channel #" + id + " edited successfully."
            };

            return(this.Ok(viewModel));
        }