private DocuSignQuery GetDocusignQuery() { var actionUi = new ActivityUi(); actionUi.ClonePropertiesFrom(ConfigurationControls); var settings = new DocuSignQuery(); settings.Folder = actionUi.Folder.Value; settings.Status = actionUi.Status.Value; settings.SearchText = actionUi.SearchText.Value; return(settings); }
public DocuSignQuery BuildDocusignQuery(DocuSignAuthTokenDTO authToken, List <FilterConditionDTO> conditions) { var query = new DocuSignQuery(); List <DocusignFolderInfo> folders = null; //Currently we can support only equality operation foreach (var condition in conditions) { FieldBackedRoutingInfo fieldBackedRoutingInfo; if (!_queryBuilderFields.TryGetValue(condition.Field, out fieldBackedRoutingInfo) || fieldBackedRoutingInfo.DocusignQueryName == null) { continue; } // criteria contains folder name, but to search we need folder id if (fieldBackedRoutingInfo.DocusignQueryName == "Folder") { if (condition.Operator == "eq") { // cache list of folders if (folders == null) { //folders = _docuSignFolder.GetSearchFolders(authToken.Email, authToken.ApiPassword); } var value = condition.Value; var folder = folders.FirstOrDefault(x => x.Name == value); query.Folder = folder != null ? folder.FolderId : value; } } else if (fieldBackedRoutingInfo.DocusignQueryName == "Status" && condition.Operator == "eq") { query.Status = condition.Value; } else if (fieldBackedRoutingInfo.DocusignQueryName == "SearchText") { if (condition.Operator == "eq") { query.SearchText = condition.Value; } } else if (fieldBackedRoutingInfo.DocusignQueryName == "CreatedDateTime") { DateTime dt; if (condition.Operator == "gt" || condition.Operator == "gte") { if (DateTime.TryParseExact(condition.Value, "dd-MM-yyyy", CultureInfo.CurrentCulture, DateTimeStyles.None, out dt)) { query.FromDate = dt; } } else if (condition.Operator == "lt") { if (DateTime.TryParseExact(condition.Value, "dd-MM-yyyy", CultureInfo.CurrentCulture, DateTimeStyles.None, out dt)) { query.ToDate = dt.AddDays(-1); } } else if (condition.Operator == "lte") { if (DateTime.TryParseExact(condition.Value, "dd-MM-yyyy", CultureInfo.CurrentCulture, DateTimeStyles.None, out dt)) { query.ToDate = dt; } } } else { query.Conditions.Add(new FilterConditionDTO() { Field = fieldBackedRoutingInfo.DocusignQueryName, Operator = condition.Operator, Value = condition.Value }); } } return(query); }