// PUT api/EventBroadcasts/5 public HttpResponseMessage PutEventBroadcast(int broadcastId, EventBroadcast eventBroadcast) { if (!ModelState.IsValid) { throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.BadRequest, ModelState)); } if (broadcastId != eventBroadcast.EventBroadcastId) { FotoShoutUtils.Log.LogManager.Error(_logger, string.Format(Errors.ERROR_BROADCAST_UPDATE_IDSNOTIDENTICAL, broadcastId, eventBroadcast.EventBroadcastId)); throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.BadRequest, string.Format(Errors.ERROR_BROADCAST_UPDATE_IDSNOTIDENTICAL, broadcastId, eventBroadcast.EventBroadcastId))); } db.Entry(eventBroadcast).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException ex) { FotoShoutUtils.Log.LogManager.Error(_logger, ex.ToString()); throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotFound, ex.Message)); } return(Request.CreateResponse(HttpStatusCode.OK)); }
public void Subscribers_are_notified_just_once_even_if_subscribed_multiple_times() { _counters = new int[2]; var sut = new EventBroadcast(); sut.Subscribe(Subscribe1); sut.Subscribe(Subscribe1); sut.Subscribe(Subscribe2); sut.Subscribe(Subscribe2); sut.Subscribe(Subscribe2); sut.Update(new Event[0], "", 0); Assert.Equal(new[] { 1, 1 }, _counters); }
// DELETE api/EventBroadcasts/5 public HttpResponseMessage DeleteEventBroadcast(int broadcastId) { EventBroadcast eventbroadcast = db.EventBroadcasts.Find(broadcastId); if (eventbroadcast == null) { FotoShoutUtils.Log.LogManager.Error(_logger, string.Format("A broadcast with the id of {0} not found.", broadcastId)); return(Request.CreateResponse(HttpStatusCode.NotFound)); } db.EventBroadcasts.Remove(eventbroadcast); try { db.SaveChanges(); } catch (DbUpdateConcurrencyException ex) { FotoShoutUtils.Log.LogManager.Error(_logger, ex.ToString()); return(Request.CreateErrorResponse(HttpStatusCode.NotFound, ex)); } return(Request.CreateResponse(HttpStatusCode.OK, eventbroadcast)); }
// POST api/EventBroadcasts public HttpResponseMessage PostEventBroadcast(EventBroadcast eventBroadcast) { if (ModelState.IsValid && eventBroadcast != null) { db.EventBroadcasts.Add(eventBroadcast); try { db.SaveChanges(); } catch (DbUpdateConcurrencyException ex) { FotoShoutUtils.Log.LogManager.Error(_logger, ex.ToString()); throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotFound, ex.Message)); } HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created, eventBroadcast); response.Headers.Location = new Uri(Url.Link("DefaultApi", new { controller = "EventBroadcasts", id = eventBroadcast.EventId, broadcastId = eventBroadcast.EventBroadcastId })); return(response); } else { throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.BadRequest, ModelState.Values.SelectMany(v => v.Errors))); } }
private bool UpdatePermaLinks(EventBroadcast bc, IDictionary <string, string> permaLinks, ICollection <string> newPermaLinks) { string thumbnails = ""; string links = ""; string[] bcPermaLinks = string.IsNullOrEmpty(bc.PermaLinks) ? null : bc.PermaLinks.Split('|'); foreach (KeyValuePair <string, string> kv in permaLinks) { if (!kv.Key.Equals("pending", StringComparison.InvariantCultureIgnoreCase)) { if (!string.IsNullOrEmpty(thumbnails)) { thumbnails += "|"; } thumbnails += kv.Key; if (!string.IsNullOrEmpty(links)) { links += "|"; } links += kv.Value; if (bcPermaLinks == null || !bcPermaLinks.Contains(kv.Value)) { newPermaLinks.Add(kv.Value); } } } if (newPermaLinks.Any()) { bc.PermaLinks = links; bc.Thumbnails = thumbnails; FotoShoutUtils.Log.LogManager.Info(_logger, string.Format("Updated the permalinks for the broadcast {0}.", bc.BroadcastId)); return(true); } return(false); }
private void PublishPhotoToChannel(EventTDO ev, PhotoTDO photo, ChannelGroup channelGroup) { if (channelGroup.Fields == null || !channelGroup.Fields.Any()) { FotoShoutUtils.Log.LogManager.Info(_logger, string.Format("There is no broadcast fields in the {0} template.", channelGroup.Name)); return; } PhotoAnnotation annotation = _fsWebService.Get <PhotoAnnotation>("PhotoAnnotation/" + photo.PhotoId, true); FotoShoutUtils.Log.LogManager.Info(_logger, string.Format("Publishing the {0} photo to the {1} channel group...", photo.Filename, string.IsNullOrEmpty(channelGroup.Name) ? channelGroup.ID.ToString() : channelGroup.Name)); string filename = photo.Folder.EndsWith(Path.DirectorySeparatorChar.ToString()) ? photo.Folder : (photo.Folder + Path.DirectorySeparatorChar) + Constants.STR_PROCESSED + Path.DirectorySeparatorChar + photo.Filename; PostBroadcast bc = new PostBroadcast { TemplateID = channelGroup.ID, Status = "Pending Publish", Description = "FotoShout Broadcast", Name = Path.GetFileNameWithoutExtension(photo.Filename), ScheduledTime = DateTime.Now.ToShortDateString(), BroadcastFields = new List <BroadcastFieldValue>() }; foreach (BroadcastField bf in channelGroup.Fields) { if (bf.Name.Equals("Album Title", StringComparison.InvariantCultureIgnoreCase)) { BroadcastFieldValue bfv = new BroadcastFieldValue { IdToken = bf.IdToken, Value = string.IsNullOrEmpty(ev.PublishAlbum) ? ev.EventName : ev.PublishAlbum }; bc.BroadcastFields.Add(bfv); } else if (bf.Name.Equals("Album Description", StringComparison.InvariantCultureIgnoreCase)) { BroadcastFieldValue bfv = new BroadcastFieldValue { IdToken = bf.IdToken, Value = string.IsNullOrEmpty(ev.PublishAlbum) ? ev.EventName : ev.PublishAlbum }; bc.BroadcastFields.Add(bfv); } else if (bf.Name.Equals("Upload Photos", StringComparison.InvariantCultureIgnoreCase)) { string serverUri = _c9WebService.UploadFile("Media/Upload", filename); if (string.IsNullOrEmpty(serverUri)) { throw new PublishingException(string.Format("Unexpected error: Can not upload the {0} photo.", photo.Filename)); } BroadcastFieldValue bfv = new BroadcastFieldValue { IdToken = bf.IdToken, Value = serverUri }; bc.BroadcastFields.Add(bfv); } else if (bf.Name.Equals("Title", StringComparison.InvariantCultureIgnoreCase)) { BroadcastFieldValue bfv = new BroadcastFieldValue { IdToken = bf.IdToken, Value = bc.Name }; bc.BroadcastFields.Add(bfv); } else if (bf.Name.Equals("Image File", StringComparison.InvariantCultureIgnoreCase)) { string serverUri = _c9WebService.UploadFile("Media/Upload", filename); if (string.IsNullOrEmpty(serverUri)) { throw new PublishingException(string.Format("Unexpected error: Can not upload the {0} photo.", photo.Filename)); } BroadcastFieldValue bfv = new BroadcastFieldValue { IdToken = bf.IdToken, Value = serverUri }; bc.BroadcastFields.Add(bfv); } else if (bf.Name.Equals("File", StringComparison.InvariantCultureIgnoreCase)) { string serverUri = _c9WebService.UploadFile("Media/Upload", filename); if (string.IsNullOrEmpty(serverUri)) { throw new PublishingException(string.Format("Unexpected error: Can not upload the {0} photo.", photo.Filename)); } BroadcastFieldValue bfv = new BroadcastFieldValue { IdToken = bf.IdToken, Value = serverUri }; bc.BroadcastFields.Add(bfv); } } string ret = _c9WebService.UploadString("Broadcast", GeneratePostContent <PostBroadcast>(bc)); if (!string.IsNullOrEmpty(ret)) { EventBroadcast eventBroadcast = new EventBroadcast { BroadcastId = int.Parse(ret.Trim(new char[] { '\"' })), EventId = ev.EventId, PhotoId = photo.PhotoId, Status = 0 }; ret = _fsWebService.UploadString("EventBroadcasts", GeneratePostContent <EventBroadcast>(eventBroadcast)); } else { throw new PublishingException(string.Format("Unsuccessully publishing the \"{0}\" photo using the \"{1}\" channel group.", photo.Filename, channelGroup.Name)); } FotoShoutUtils.Log.LogManager.Info(_logger, string.Format("Published the {0} photo.", photo.Filename)); }
void OnDestroy() { instance = null; }