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);
        }
Example #2
0
        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);
        }