public HttpResponseMessage CampaignsTimelineAdd(dynamic data) { Guid campaignId = data.Campaign; Guid screenTypeId = data.ScreenType; var screenType = GetScreenType(screenTypeId); var repository = factory.GetRepository<Repository<Campaigns>>(); var repositoryChannel = factory.GetRepository<Repository<Channel>>(); var query = repository.GetQueryable(); var campaign = query.Where(o => o.Id == campaignId) .FirstOrDefault(); var timeline = new Timeline(); factory.OnTransaction(() => { var channels = screenType.CreateChannels(); timeline.AddScreenType(screenType); foreach (var c in channels) { var channel = repositoryChannel.SaveOrUpdate(c); timeline.AddChannels(channel); } // must get channel id:Z campaign.AddTimeline(timeline); }); var response = new HttpResponseMessage(HttpStatusCode.OK); var result = new { Timeline = timeline.Id }; response.Content = new JsonContent(result); return response; }
public HttpResponseMessage CampaignAdd(dynamic data) { try { string name = data.Name; string description = data.Description; Orientation orientation = (Orientation)data.Orientation; string resolution = data.Resolution; Guid screentypeid = data.ScreenTemplate.screenType; var template = ScreenTemplate(orientation, resolution); var screenType = ScreenType(screentypeid); var repository = factory.GetRepository<Repository<Campaigns>>(); var repositoryChannel = factory.GetRepository<Repository<Channel>>(); var campaign = new Campaigns() { Name = name, Description = description, ScreenTemplate = template, }; var timeline = new Timeline(); factory.OnTransaction(() => { var channels = screenType.CreateChannels(); timeline.AddScreenType(screenType); foreach (var c in channels) { var channel = repositoryChannel.SaveOrUpdate(c); timeline.AddChannels(channel); } // must get channel id:Z campaign.AddTimeline(timeline); repository.SaveOrUpdate(campaign); }); var response = new HttpResponseMessage(HttpStatusCode.OK); response.Content = new JsonContent(new { Campaign = campaign.Id, }); return response; } catch (Exception ex) { return new HttpResponseMessage(HttpStatusCode.InternalServerError); } }