public void ToSelectListItemsTests() { //Arrange DocumentCategoryModels models = new DocumentCategoryModels(); DocumentCategoryModel model = new DocumentCategoryModel { Id = 1, Description = "Item1" }; models.DocumentCategories.Add(model); model = new DocumentCategoryModel { Id = 2, Description = "Item2" }; models.DocumentCategories.Add(model); //Act var result = models.ToSelectListItems(); //Assert Assert.IsNotNull(result); Assert.IsTrue(result.Count == 2); Assert.IsTrue(result.Exists(i => i.Value == "1" && i.Text == "Item1")); Assert.IsTrue(result.Exists(i => i.Value == "2" && i.Text == "Item2")); }
public void ToSelectListItemsInvalidTests() { //Arrange DocumentCategoryModels models = new DocumentCategoryModels(); models.DocumentCategories = null; //Act var result = models.ToSelectListItems(); //Assert Assert.IsNull(result); }
/// <summary> /// Convert an instance of <see cref="DocumentCategoryModels"/> into a list of <see cref="SelectListItem"/> /// </summary> /// <param name="documentCategories"></param> /// <returns></returns> public static List <SelectListItem> ToSelectListItems(this DocumentCategoryModels documentCategories) { if (documentCategories?.DocumentCategories == null || !documentCategories.DocumentCategories.Any()) { return(null); } return(documentCategories.DocumentCategories.Select(documentType => new SelectListItem { Value = documentType.Id.ToString(), Text = documentType.Description }) .ToList()); }
private DocumentCategoryModels CleanDocumentCategories(DocumentCategoryModels categories) { DocumentCategoryModels result = null; if (categories?.DocumentCategories == null || !categories.DocumentCategories.Any()) { return(null); } result = new DocumentCategoryModels(); foreach (var category in categories.DocumentCategories) { if (category.Description.ToLower() != "unit testing") { result.DocumentCategories.Add(category); } } return(result); }
/// <summary> /// Retrieves a list of document categories /// </summary> /// <param name="email"></param> /// <param name="rooturl"></param> /// <param name="encodedId"></param> /// <returns></returns> public async Task <DocumentCategoryModels> GetDocumentCategories(string email, string rooturl, string encodedId) { if (string.IsNullOrEmpty(email) || string.IsNullOrEmpty(rooturl) || string.IsNullOrEmpty(encodedId)) { return(null); } string queryname = WebTasksTypeConstants.GetDocumentCategories; string queryterms = WebApiServices.GetEmailJsonQuerySearchTerms(email); string url = $"{rooturl}api/webtasks?queryname={queryname}&queryterms={queryterms}"; DocumentCategoryModels result = null; LoggingService service = new LoggingService(); var stopwatch = new Stopwatch(); try { var response = await new WebApiServices().GetData(url, encodedId); if (!string.IsNullOrEmpty(response)) { result = new SerializerServices() .DeserializeObject <DocumentCategoryModels>(response.NormalizeJsonString()); result = this.CleanDocumentCategories(result); } } catch (Exception ex) { service.TrackException(ex); throw; } finally { stopwatch.Stop(); var properties = new Dictionary <string, string> { { "UserEmail", email }, { "WebServicesEndpoint", rooturl }, { "EncodedId", encodedId } }; service.TrackEvent(LoggingServiceConstants.GetDocumentCategories, stopwatch.Elapsed, properties); } return(result); }