public Statistics Retrievestatistics()
        {
            var result = _payrollBureauDataService.Retrieve <Data.Entities.Bureau>(p => true).ToList();

            return(new Statistics
            {
                Bureau = result.Count,
                //Users = result.Count(u => !string.IsNullOrEmpty(u.AspnetUserId))
            });
        }
        public ValidationResult <EmployeeDocument> CreateEmployeeDocument(DocumentMeta documentMeta, int employeeId, string userId)
        {
            var validationResult = new ValidationResult <EmployeeDocument>();

            try
            {
                //upload document to document service
                var documentCategoryId = documentMeta.DocumentTypeId;
                var documentCategory   = _payrollBureauDataService.Retrieve <DocumentCategory>(e => e.DocumentCategoryId == documentMeta.DocumentTypeId);
                if (documentCategory == null)
                {
                    validationResult.Errors = new List <string> {
                        "Document category not found"
                    };
                    return(validationResult);
                }

                var apiDocument = new Document
                {
                    Product        = ProductName,
                    Category       = documentCategory.FirstOrDefault()?.Name,
                    PayrollId      = employeeId.ToString(),
                    CreatedBy      = userId,
                    CreatedDateUTC = DateTime.UtcNow
                };

                var document = _documentServiceRestClient.CreateDocument(apiDocument);

                if (document == null)
                {
                    validationResult.Errors = new List <string>()
                    {
                        "Document could not be saved, please try again"
                    };
                    return(validationResult);
                }

                var employeeDocument = new EmployeeDocument()
                {
                    DocumentCategoryId = documentCategoryId,
                    DocumentGuid       = document.DocumentGuid,
                    EmployeeId         = employeeId,
                    Filename           = documentMeta.FileName,
                    CreatedBy          = userId,
                    Description        = documentMeta.Description,
                    CreatedDateUtc     = DateTime.UtcNow
                };
                _payrollBureauDataService.Create <EmployeeDocument>(employeeDocument);
                validationResult.Succeeded = true;
                return(validationResult);
            }
            catch (Exception ex)
            {
                validationResult.Succeeded = false;
                validationResult.Exception = ex;
            }
            return(validationResult);
        }