private static string GetOnErrorUrl(ItemViewModels.PersonViewModel model, string size) { try { SocialMediaName socialMediaName = model.SocialMediaNames.FirstOrDefault(s => s.Source.Name == "Twitter"); string imageUrl = "https://twitter.com/" + socialMediaName.Username + "/profile_image?size=" + size; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(imageUrl); using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) { if (response.StatusCode == HttpStatusCode.OK) { return(response.ResponseUri.AbsoluteUri); } return("/Content/build/images/picture.jpg"); } } #pragma warning disable CS0168 // Variable is declared but never used catch (Exception e) #pragma warning restore CS0168 // Variable is declared but never used { return("/Content/build/images/picture.jpg"); } }
/// <summary> /// Reads json and makes item objects which will be saved afterwards into the database. /// </summary> private bool AddItemsFromJson(string json, int subPlatformID) { uowManager = new UnitOfWorkManager(); InitRepo(); dynamic deserializedJson = JsonConvert.DeserializeObject(json); UserManager userManager = new UserManager(uowManager); DataManager dataManager = new DataManager(uowManager); SubPlatform subPlatform = new SubplatformManager(uowManager).GetSubPlatform(subPlatformID); //Needs to be in memory to gain preformance IEnumerable <Area> areas = userManager.GetAreas(); IEnumerable <Source> sources = dataManager.GetAllSources(); IEnumerable <Item> organisations = GetAllOrganisations(); IEnumerable <Item> persons = GetAllPersons(); List <Item> items = new List <Item>(); //Extract perons out of the JSON for (int i = 0; i < deserializedJson.Count; i++) { string fullname = deserializedJson[i].full_name; if (persons.Where(person => person.SubPlatform.SubPlatformId == subPlatformID) .Where(x => x.Name.Equals(fullname)).SingleOrDefault() == null) { string gender = deserializedJson[i].gender; string postalCode = deserializedJson[i].postal_code; string organisation = deserializedJson[i].organisation; string twitter = deserializedJson[i].twitter; string facebook = deserializedJson[i].facebook; string stringDate = Convert.ToString(deserializedJson[i].dateOfBirth); string town = deserializedJson[i].town; string level = deserializedJson[i].level; string site = deserializedJson[i].site; string district = deserializedJson[i].district; string position = deserializedJson[i].position; Gender personGender = (gender == "M") ? Gender.Man : Gender.Woman; DateTime?dateOfBirth = DateTime.ParseExact(stringDate, "yyyy-MM-dd HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture); Person person = (Person)AddItem(itemType: ItemType.Person, name: fullname, gender: personGender, district: district, level: level, site: site, position: position, dateOfBirth: dateOfBirth); person.SubPlatform = subPlatform; person.Area = areas.Where(area => area.PostalCode.Equals(postalCode) && area.Residence.ToLower().Equals(town.ToLower())).SingleOrDefault(); if (!string.IsNullOrEmpty(twitter)) { SocialMediaName twitterSocial = new SocialMediaName() { Username = twitter, Source = sources.Where(src => src.Name.Equals("Twitter")).SingleOrDefault() }; person.SocialMediaNames.Add(twitterSocial); } if (!string.IsNullOrEmpty(facebook)) { SocialMediaName facebookSocial = new SocialMediaName() { Username = facebook, Source = sources.Where(src => src.Name.Equals("Facebook")).SingleOrDefault() }; person.SocialMediaNames.Add(facebookSocial); } person.Organisation = (Organisation)organisations.Where(org => org.Name.Equals(organisation)).SingleOrDefault(); items.Add(person); } } //Save items to the database if (items.Count > 0) { itemRepo.CreateItems(items); uowManager.Save(); foreach (Item item in items) { GenerateDefaultItemWidgets(item.Name, item.ItemId); } uowManager = null; return(true); } else { return(false); } }