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 })); }
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 })); }
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); }
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)); }
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("/")); }
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)); }
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)); }