public string GetSubscriptions(int clientid) { AuthController objAuth = new AuthController(); if (objAuth.CheckUserClients(clientid) == 0) { return(""); } List <SubscriptionMarket> lstsubmkt = new List <SubscriptionMarket>(); lstsubmkt = dbContext.subscriptionMarket.Where(q => q.subscription.ClientId == clientid).ToList(); List <ClientSubscriptionDTO> sublist = new List <ClientSubscriptionDTO>(); List <MarketBase> mktlist = new List <MarketBase>(); int subid = 0; int newSubid = 0; foreach (var r in lstsubmkt) { ClientSubscriptionDTO dto; Models.Subscription.SubscriptionDTO sDto; List <MarketBase> lstMkt; //MarketBase objMbase; subid = r.SubscriptionId; if (subid != newSubid) { dto = new ClientSubscriptionDTO(); sDto = new Models.Subscription.SubscriptionDTO(); dto.ClientId = r.subscription.ClientId; // dto.subscription = r.subscription; sDto.SubscriptionId = r.SubscriptionId; sDto.Name = r.subscription.Name; sDto.ClientId = r.subscription.ClientId; sDto.CountryId = r.subscription.CountryId; sDto.ServiceId = r.subscription.ServiceId; sDto.DataTypeId = r.subscription.DataTypeId; sDto.SourceId = r.subscription.SourceId; sDto.Country = r.subscription.country.Name; sDto.Service = r.subscription.service.Name; sDto.Data = r.subscription.dataType.Name; sDto.Source = r.subscription.source.Name; sDto.StartDate = r.subscription.StartDate; sDto.EndDate = r.subscription.EndDate; sDto.ServiceTerritoryId = r.subscription.ServiceTerritoryId; sDto.Active = r.subscription.Active; sDto.LastModified = r.subscription.LastModified; sDto.ModifiedBy = r.subscription.ModifiedBy; sDto.serviceTerritory = r.subscription.serviceTerritory; dto.subscription = sDto; var listOfmktid = lstsubmkt.Where(r1 => r1.SubscriptionId == subid && r1.subscription.EndDate.Year >= DateTime.Now.Year).Select(t => t.MarketBaseId); lstMkt = new List <MarketBase>(); lstMkt = lstsubmkt.Where(t2 => t2.SubscriptionId == subid).Select(t3 => t3.marketBase).OrderBy(p => p.Name).ThenBy(q => q.Suffix).ToList(); dto.MarketBase = lstMkt; sublist.Add(dto); //dto = new ClientSubscriptionDTO(); //dto.subscription = r.subscription; //var listOfmktid = lstsubmkt.Where(r1 => r1.SubscriptionId == subid && r1.subscription.EndDate.Year >= DateTime.Now.Year).Select(t => t.MarketBaseId); //lstMkt = new List<MarketBase>(); //lstMkt = lstsubmkt.Where(t2 => t2.SubscriptionId == subid).Select(t3 => t3.marketBase).ToList(); //dto.MarketBase = lstMkt; //sublist.Add(dto); } newSubid = r.SubscriptionId; } var json = JsonConvert.SerializeObject(sublist, Formatting.Indented, new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Ignore }); return(json); }
public HttpResponseMessage DownloadSubscriptions(int clientid) { AuthController objAuth = new AuthController(); if (objAuth.CheckUserClients(clientid) == 0) { return(new HttpResponseMessage(HttpStatusCode.NotFound)); } List <SubscriptionMarket> lstsubmkt = new List <SubscriptionMarket>(); List <ClientSubscriptionDTO> sublist = new List <ClientSubscriptionDTO>(); List <MarketBase> mktlist = new List <MarketBase>(); DataTable subdcriptionDT = new DataTable(); var objSub = dbContext.subscription.Where(u => u.ClientId == clientid && u.EndDate.Year >= DateTime.Now.Year).ToList(); if (objSub != null && objSub.Count > 0) { foreach (var sub in objSub) { ClientSubscriptionDTO dto = new ClientSubscriptionDTO(); Models.Subscription.SubscriptionDTO sDto = new Models.Subscription.SubscriptionDTO(); dto.ClientId = sub.ClientId; //sub.client.MarketDefinitions = new List<MarketDefinition>(); //dto.subscription = sub; sDto.SubscriptionId = sub.SubscriptionId; sDto.Name = sub.Name; sDto.ClientId = sub.ClientId; var cList = dbContext.Clients.Where(z => z.Id == sub.ClientId).ToList().FirstOrDefault(); dto.ClientName = cList.Name; //dto.ClientName = sDto.CountryId = sub.CountryId; sDto.ServiceId = sub.ServiceId; sDto.DataTypeId = sub.DataTypeId; sDto.SourceId = sub.SourceId; sDto.Country = sub.country.Name; sDto.Service = sub.service.Name; sDto.Data = sub.dataType.Name; sDto.Source = sub.source.Name; sDto.StartDate = sub.StartDate; sDto.EndDate = sub.EndDate; sDto.ServiceTerritoryId = sub.ServiceTerritoryId; sDto.Active = sub.Active; sDto.LastModified = sub.LastModified; sDto.ModifiedBy = sub.ModifiedBy; sDto.serviceTerritory = sub.serviceTerritory; dto.subscription = sDto; var submket = dbContext.subscriptionMarket.Where(p => p.SubscriptionId == sub.SubscriptionId).ToList(); if (submket != null && submket.Count() > 0) { dto.MarketBase = submket.Select(a => a.marketBase).OrderBy(p => p.Name).ThenBy(q => q.Suffix).ToList(); } //dto.subscription.client.MarketDefinitions = new List<MarketDefinition>(); sublist.Add(dto); ////subdcriptionDT = ListToDataTable(sublist); //string xmlString = SerializeXml(sublist); //DataSet ds = new DataSet("New_DataSet"); //using (System.Xml.XmlReader reader = System.Xml.XmlReader.Create(new StringReader(xmlString))) //{ // ds.Locale = System.Threading.Thread.CurrentThread.CurrentCulture; // ds.ReadXml(reader); // subdcriptionDT = ds.Tables[0]; //} subdcriptionDT = BuildsubscriptionDataTable(sublist); //ClientSubscriptionDTO dto = new ClientSubscriptionDTO(); //dto.ClientId = sub.ClientId; //sub.client.MarketDefinitions = new List<MarketDefinition>(); //dto.subscription = sub; //var submket = dbContext.subscriptionMarket.Where(p => p.SubscriptionId == sub.SubscriptionId).ToList(); //if (submket != null && submket.Count() > 0) //{ // dto.MarketBase = submket.Select(a => a.marketBase).ToList(); //} //dto.subscription.client.MarketDefinitions = new List<MarketDefinition>(); //sublist.Add(dto); } } //foreach (var xx in sublist) //{ // xx.subscription.client.MarketDefinitions.RemoveRange(0, xx.subscription.client.MarketDefinitions.Count); HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK); MemoryStream stream = new MemoryStream(); stream = GetExcelStream(subdcriptionDT); // Reset Stream Position stream.Position = 0; result.Content = new StreamContent(stream); // Generic Content Header result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment"); return(result); }