public void BindContactTitle(DropDownList _ddlContactTitles)
        {
            ContactServiceClient contactService = null;
            try
            {
                contactService = new ContactServiceClient();
                CollectionRequest collectionRequest = new CollectionRequest();
                collectionRequest.StartRow = 0;

                TitleSearchCriteria titleCriteria = new TitleSearchCriteria();
                TitleSearchReturnValue titleReturnValue = contactService.TitleSearch(_logonSettings.LogonId, collectionRequest, titleCriteria);
                if (titleReturnValue.Title != null)
                {
                    _ddlContactTitles.DataSource = titleReturnValue.Title.Rows;
                    _ddlContactTitles.DataTextField = "TitleId";
                    _ddlContactTitles.DataValueField = "TitleId";
                    _ddlContactTitles.DataBind();
                }
                AddDefaultToDropDownList(_ddlContactTitles);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (contactService != null)
                {
                    if (contactService.State != System.ServiceModel.CommunicationState.Faulted)
                        contactService.Close();
                }
            }
        }
        /// <summary>
        /// Searches for appointments that match the search criteria.
        /// </summary>
        public IRIS.Law.WebServiceInterfaces.Diary.Appointment[] SearchAppointment(int startRow, int pageSize, string sortBy, string user, string date, bool forceRefresh)
        {
            DiaryServiceClient diaryService = null;
            IRIS.Law.WebServiceInterfaces.Diary.Appointment[] appointments = null;
            try
            {
                if (HttpContext.Current.Session[SessionName.LogonSettings] != null)
                {
                    Guid _logonId = ((LogonReturnValue)HttpContext.Current.Session[SessionName.LogonSettings]).LogonId;
                    CollectionRequest collectionRequest = new CollectionRequest();
                    collectionRequest.ForceRefresh = forceRefresh;
                    collectionRequest.StartRow = startRow;
                    collectionRequest.RowCount = pageSize;

                    AppointmentSearchCriteria criteria = new AppointmentSearchCriteria();
                    criteria.MemberID = user;
                    criteria.OrderBy = sortBy;
                    if (!string.IsNullOrEmpty(date))
                    {
                        criteria.Date = Convert.ToDateTime(date);
                    }
                    else
                    {
                        criteria.Date = DataConstants.BlankDate;
                    }

                    diaryService = new DiaryServiceClient();
                    AppointmentSearchReturnValue returnValue = diaryService.AppointmentSearch(_logonId,
                                                collectionRequest, criteria);

                    if (returnValue.Success)
                    {
                        _appointmentRowCount = returnValue.Appointments.TotalRowCount;
                        appointments = returnValue.Appointments.Rows;
                    }
                    else
                    {
                        if (returnValue.Message == "SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM.")
                            throw new Exception("Date is invalid");
                        else
                            throw new Exception(returnValue.Message);
                    }
                }
                return appointments;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (diaryService != null)
                {
                    if (diaryService.State != System.ServiceModel.CommunicationState.Faulted)
                        diaryService.Close();
                }
            }
        }
        /// <summary>
        /// Gets the documents for the matter.
        /// </summary>
        public DocumentSearchItem[] GetMatterDocuments(int startRow, int pageSize, string sortBy)
        {
            DocumentServiceClient documentService = new DocumentServiceClient();
            DocumentSearchItem[] matterDocs = null;
            try
            {
                Guid logonId = ((LogonReturnValue)Session[SessionName.LogonSettings]).LogonId;
                CollectionRequest collectionRequest = new CollectionRequest();
                collectionRequest.StartRow = startRow;
                collectionRequest.RowCount = pageSize;
                collectionRequest.ForceRefresh = true;

                if (Session[SessionName.ProjectId] != null)
                {
                    DocumentSearchReturnValue returnValue = documentService.MatterDocumentSearch(logonId, (Guid)Session[SessionName.ProjectId], sortBy);
                    if (returnValue != null)
                    {
                        if (returnValue.Success)
                        {
                            if (returnValue.Document != null)
                            {
                                matterDocs = returnValue.Document.Rows;
                                _matterDocumentRowCount = returnValue.Document.Rows.Length;
                            }
                        }
                        else
                        {
                            throw new Exception(returnValue.Message);
                        }
                    }
                }
                else
                {
                    throw new Exception("No Project Id found.");
                }
                return matterDocs;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (documentService != null)
                {
                    if (documentService.State != System.ServiceModel.CommunicationState.Faulted)
                        documentService.Close();
                }
            }
        }
        public ChequeAuthorisationSearchItem[] LoadUnauthorisedClientChequeRequestsCredit(int startRow, int pageSize, bool forceRefresh)
        {
            AccountsServiceClient accountsService = null;
            ChequeAuthorisationSearchItem[] clientChequeRequests = null;

            try
            {
                accountsService = new AccountsServiceClient();
                CollectionRequest collectionRequest = new CollectionRequest();
                collectionRequest.ForceRefresh = forceRefresh;
                collectionRequest.StartRow = startRow;
                collectionRequest.RowCount = pageSize;

                ChequeAuthorisationSearchCriteria searchCriteria = new ChequeAuthorisationSearchCriteria();
                searchCriteria.IsAuthorised = false;
                searchCriteria.IsPosted = false;

                // Suggestd by client after introducing new properties in service layer
                searchCriteria.IncludeDebit = false;
                searchCriteria.IncludeCredit = true;

                Guid logonId = ((LogonReturnValue)HttpContext.Current.Session[SessionName.LogonSettings]).LogonId;
                ChequeAuthorisationReturnValue returnValue = accountsService.GetUnauthorisedClientChequeRequests(logonId, collectionRequest, searchCriteria);

                if (returnValue.Success)
                {
                    _clientChequeRequestsCreditRowCount = returnValue.ChequeRequests.TotalRowCount;
                    clientChequeRequests = returnValue.ChequeRequests.Rows;
                }
                else
                {
                    _lblMessage.CssClass = "errorMessage";
                    _lblMessage.Text = returnValue.Message;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (accountsService != null)
                {
                    if (accountsService.State != System.ServiceModel.CommunicationState.Faulted)
                        accountsService.Close();
                }
            }

            return clientChequeRequests;
        }
 /// <summary>
 /// 
 /// </summary>
 /// <param name="oHostSecurityToken"></param>
 /// <param name="collectionRequest"></param>
 /// <param name="criteria"></param>
 /// <returns></returns>
 public BranchSearchReturnValue BranchSearch(HostSecurityToken oHostSecurityToken, CollectionRequest collectionRequest)
 {
     BranchSearchReturnValue returnValue = null;
     if (Functions.ValidateIWSToken(oHostSecurityToken))
     {
         oBranchDeptService = new BranchDeptService();
         returnValue = oBranchDeptService.BranchSearch(Functions.GetLogonIdFromToken(oHostSecurityToken), collectionRequest);
     }
     else
     {
         returnValue = new BranchSearchReturnValue();
         returnValue.Success = false;
         returnValue.Message = "Invalid Token";
     }
     return returnValue;
 }
 /// <summary>
 /// 
 /// </summary>
 /// <param name="oHostSecurityToken"></param>
 /// <param name="collectionRequest"></param>
 /// <returns></returns>
 public AdvocacyTypeSearchReturnValue AdvocacyTypeSearch(HostSecurityToken oHostSecurityToken,
                                                   CollectionRequest collectionRequest)
 {
     AdvocacyTypeSearchReturnValue returnValue = null;
     if (Functions.ValidateIWSToken(oHostSecurityToken))
     {
         oTimeService = new TimeService();
         returnValue = oTimeService.AdvocacyTypeSearch(Functions.GetLogonIdFromToken(oHostSecurityToken), collectionRequest);
     }
     else
     {
         returnValue = new AdvocacyTypeSearchReturnValue();
         returnValue.Success = false;
         returnValue.Message = "Invalid Token";
     }
     return returnValue;
 }
 /// <summary>
 /// 
 /// </summary>
 /// <param name="oHostSecurityToken"></param>
 /// <param name="collectionRequest"></param>
 /// <param name="criteria"></param>
 /// <returns></returns>
 public EarnerSearchReturnValue EarnerSearch(HostSecurityToken oHostSecurityToken, CollectionRequest collectionRequest,
     EarnerSearchCriteria criteria)
 {
     EarnerSearchReturnValue returnValue = null;
     if (Functions.ValidateIWSToken(oHostSecurityToken))
     {
         oEarnerService = new EarnerService();
         returnValue = oEarnerService.EarnerSearch(Functions.GetLogonIdFromToken(oHostSecurityToken), collectionRequest, criteria);
     }
     else
     {
         returnValue = new EarnerSearchReturnValue();
         returnValue.Success = false;
         returnValue.Message = "Invalid Token";
     }
     return returnValue;
 }
        /// <summary>
        /// Loads disbursements by project id
        /// </summary>
        /// <param name="startRow"></param>
        /// <param name="pageSize"></param>
        /// <param name="forceRefresh"></param>
        /// <returns></returns>
        public DisbursementSearchItem[] LoadDisbursements(int startRow, int pageSize, bool forceRefresh)
        {
            AccountsServiceClient accountsService = null;
            DisbursementSearchItem[] disbursements = null;

            try
            {
                if (Session[SessionName.ProjectId] != null)
                {
                    accountsService = new AccountsServiceClient();
                    CollectionRequest collectionRequest = new CollectionRequest();
                    collectionRequest.ForceRefresh = forceRefresh;
                    collectionRequest.StartRow = startRow;
                    collectionRequest.RowCount = pageSize;

                    Guid projectId = (Guid)Session[SessionName.ProjectId];
                    Guid logonId = ((LogonReturnValue)HttpContext.Current.Session[SessionName.LogonSettings]).LogonId;
                    DisbursementsSearchReturnValue returnValue = accountsService.GetDisbursementsDetails(logonId, collectionRequest, projectId);

                    if (returnValue.Success)
                    {
                        _disbursementsRowCount = returnValue.Disbursements.TotalRowCount;
                        disbursements = returnValue.Disbursements.Rows;
                    }
                    else
                    {
                        _lblMessage.CssClass = "errorMessage";
                        _lblMessage.Text = returnValue.Message;
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (accountsService != null)
                {
                    if (accountsService.State != System.ServiceModel.CommunicationState.Faulted)
                        accountsService.Close();
                }
            }

            return disbursements;
        }
 public AppointmentSearchReturnValue AppointmentSearch(HostSecurityToken oHostSecurityToken, CollectionRequest collectionRequest,
                         AppointmentSearchCriteria criteria)
 {
     AppointmentSearchReturnValue returnValue = null;
     if (Functions.ValidateIWSToken(oHostSecurityToken))
     {
         oDiaryService = new DiaryService();
         returnValue = oDiaryService.AppointmentSearch(Functions.GetLogonIdFromToken(oHostSecurityToken), collectionRequest, criteria);
     }
     else
     {
         returnValue = new AppointmentSearchReturnValue();
         returnValue.Success = false;
         returnValue.Message = "Invalid Token";
     }
     return returnValue;
 }
 /// <summary>
 /// Search for association roles based on the application
 /// </summary>
 /// <param name="oHostSecurityToken">HostSecurityToken obtained when security provider of IWS is called</param>
 /// <param name="collectionRequest">Information about the collection being requested.</param>
 /// <param name="criteria">AssociationRole search criteria.</param>
 /// <returns></returns>
 public AssociationRoleSearchReturnValue AssociationRoleForApplicationSearch(HostSecurityToken oHostSecurityToken,
             CollectionRequest collectionRequest, AssociationRoleSearchCriteria criteria)
 {
     AssociationRoleSearchReturnValue returnValue = null;
     if (Functions.ValidateIWSToken(oHostSecurityToken))
     {
         oContactService = new ContactService();
         returnValue = oContactService.AssociationRoleForApplicationSearch(Functions.GetLogonIdFromToken(oHostSecurityToken),
             collectionRequest, criteria);
     }
     else
     {
         returnValue = new AssociationRoleSearchReturnValue();
         returnValue.Success = false;
         returnValue.Message = "Invalid Token";
     }
     return returnValue;
 }
        /// <summary>
        /// Searches for clients that match the search criteria.
        /// </summary>
        public ServiceContactSearchItem[] SearchContactService(int startRow, int pageSize, string sortBy, string serviceOrgId, bool forceRefresh)
        {
            TimeServiceClient timeService = null;
            ServiceContactSearchItem[] serviceContact = null;
            try
            {
                if (HttpContext.Current.Session[SessionName.LogonSettings] != null)
                {
                    Guid _logonId = ((LogonReturnValue)HttpContext.Current.Session[SessionName.LogonSettings]).LogonId;
                    CollectionRequest collectionRequest = new CollectionRequest();
                    collectionRequest.ForceRefresh = forceRefresh;
                    collectionRequest.StartRow = startRow;
                    collectionRequest.RowCount = pageSize;

                    Guid orgId = new Guid(serviceOrgId);

                    timeService = new TimeServiceClient();
                    ServiceContactSearchReturnValue returnValue = timeService.ServiceContactSearch(_logonId, collectionRequest, orgId, sortBy);

                    if (returnValue.Success)
                    {
                        _serviceContactRowCount = returnValue.ServiceContact.TotalRowCount;
                        serviceContact = returnValue.ServiceContact.Rows;
                    }
                    else
                    {
                        throw new Exception(returnValue.Message);
                    }
                }
                return serviceContact;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (timeService != null)
                {
                    if (timeService.State != System.ServiceModel.CommunicationState.Faulted)
                        timeService.Close();
                }
            }
        }
 public DiaryParameterReturnValue GetTaskTypes(HostSecurityToken oHostSecurityToken, CollectionRequest collectionRequest)
 {
     DiaryParameterReturnValue returnValue = null;
     if (Functions.ValidateIWSToken(oHostSecurityToken))
     {
         oDiaryService = new DiaryService();
         returnValue = oDiaryService.GetTaskTypes(Functions.GetLogonIdFromToken(oHostSecurityToken), collectionRequest);
     }
     else
     {
         returnValue = new DiaryParameterReturnValue();
         returnValue.Success = false;
         returnValue.Message = "Invalid Token";
     }
     return returnValue;
 }
 public CancellationCodeSearchReturnValue GetBookingCancelledReasons(HostSecurityToken oHostSecurityToken, CollectionRequest collectionRequest)
 {
     CancellationCodeSearchReturnValue returnValue = null;
     if (Functions.ValidateIWSToken(oHostSecurityToken))
     {
         oDiaryService = new DiaryService();
         returnValue = oDiaryService.GetBookingCancelledReasons(Functions.GetLogonIdFromToken(oHostSecurityToken), collectionRequest);
     }
     else
     {
         returnValue = new CancellationCodeSearchReturnValue();
         returnValue.Success = false;
         returnValue.Message = "Invalid Token";
     }
     return returnValue;
 }
        /// <summary>
        /// Gets the industries.
        /// </summary>
        private void BindIndustries()
        {
            ContactServiceClient contactService = null;
            try
            {
                contactService = new ContactServiceClient();
                CollectionRequest collectionRequest = new CollectionRequest();
                IndustrySearchCriteria searchCriteria = new IndustrySearchCriteria();
                IndustrySearchReturnValue returnValue = contactService.IndustrySearch(_logonSettings.LogonId,
                                                                collectionRequest, searchCriteria);
                if (returnValue.Success)
                {
                    //Add a blank item
                    AppFunctions.AddDefaultToDropDownList(_ddlIndustry);

                    //Generate the items to be displayed in the Industry drop down list
                    //Get the main items
                    string industryText = string.Empty;
                    foreach (IndustrySearchItem industry in returnValue.Industries.Rows)
                    {
                        if (industry.ParentId == 0)
                        {
                            industryText = industry.Name;
                            _ddlIndustry.Items.Add(new ListItem(industryText, industry.Id.ToString()));

                            // Call method to get the sub items
                            GetIndustrySubItems(returnValue.Industries.Rows, industryText, industry.Id);
                        }
                    }
                }
                else
                {
                    throw new Exception(returnValue.Message);
                }
            }
            catch (System.ServiceModel.EndpointNotFoundException)
            {
                _lblMessage.Text = DataConstants.WSEndPointErrorMessage;
                _lblMessage.CssClass = "errorMessage";
            }
            catch (Exception ex)
            {

                _lblMessage.Text = ex.Message;
                _lblMessage.CssClass = "errorMessage";
            }
            finally
            {
                if (contactService != null)
                {
                    if (contactService.State != System.ServiceModel.CommunicationState.Faulted)
                        contactService.Close();
                }
            }
        }
        /// <summary>
        /// Get Document Types for Import Document
        /// </summary>
        /// <param name="logonId"></param>
        /// <param name="criteria"></param>
        /// <param name="collectionRequest"></param>
        /// <returns></returns>
        public DocumentTypeReturnValue GetDocumentTypes(Guid logonId, DocumentTypeSearchCriteria criteria, CollectionRequest collectionRequest)
        {
            DocumentTypeReturnValue returnValue = new DocumentTypeReturnValue();

            try
            {
                // Get the logged on user from the current logons and add their
                // ApplicationSettings the list of concurrent sessions.
                Host.LoadLoggedOnUser(logonId);

                try
                {
                    Functions.RestrictRekoopIntegrationUser(UserInformation.Instance.DbUid);
                    switch (UserInformation.Instance.UserType)
                    {
                        case DataConstants.UserType.Staff:
                            // Can do everything
                            break;
                        case DataConstants.UserType.Client:
                        case DataConstants.UserType.ThirdParty:
                            throw new Exception("Access denied");
                        default:
                            throw new Exception("Access denied");
                    }

                    // Create a data list creator for a list of matters
                    DataListCreator<DocumentTypeSearchItem> dataListCreator = new DataListCreator<DocumentTypeSearchItem>();

                    // Declare an inline event (annonymous delegate) to read the
                    // dataset if it is required
                    dataListCreator.ReadDataSet += delegate(object sender, ReadDataSetEventArgs e)
                    {
                        e.DataSet = SrvDocumentLookup.GetDocumentTypes(criteria.DocTypeIDs);
                    };

                    // Create the data list
                    returnValue.DocumentType = dataListCreator.Create(logonId,
                        // Give the query a name so it can be cached
                        "DocumentTypeSearch",
                        // Tell it the query criteria used so if the cache is accessed
                        // again it knows if it is the same query
                        criteria.ToString(),
                        collectionRequest,
                        // Import mappings to map the dataset row fields to the data
                        // list entity properties
                        new ImportMapping[] {
                            new ImportMapping("Id", "DocTypeID"),
                            new ImportMapping("Description", "DocTypeDescription")
                            }
                        );
                }
                finally
                {
                    // Remove the logged on user's ApplicationSettings from the
                    // list of concurrent sessions
                    Host.UnloadLoggedOnUser();
                }
            }
            catch (System.Data.SqlClient.SqlException)
            {
                returnValue.Success = false;
                returnValue.Message = Functions.SQLErrorMessage;
            }
            catch (Exception ex)
            {
                returnValue.Success = false;
                returnValue.Message = ex.Message;
            }

            return returnValue;
        }
        /// <summary>
        /// Gets the title values for the drop down list..
        /// </summary>
        private void GetTitles()
        {
            ContactServiceClient contactService = null;
            try
            {
                contactService = new ContactServiceClient();
                CollectionRequest collectionRequest = new CollectionRequest();
                TitleSearchCriteria searchCriteria = new TitleSearchCriteria();
                TitleSearchReturnValue returnValue = contactService.TitleSearch(_logonId, collectionRequest, searchCriteria);

                if (returnValue.Success)
                {
                    _ddlTitle.DataSource = returnValue.Title.Rows;
                    _ddlTitle.DataTextField = "TitleId";
                    _ddlTitle.DataValueField = "TitleId";
                    _ddlTitle.DataBind();
                }
                else
                {
                    throw new Exception(returnValue.Message);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (contactService != null)
                {
                    if (contactService.State != System.ServiceModel.CommunicationState.Faulted)
                        contactService.Close();
                }
            }
        }
 /// <summary>
 /// Gets the disability values for the drop down list.
 /// </summary>
 private void GetDisability()
 {
     ContactServiceClient contactService = null;
     try
     {
         contactService = new ContactServiceClient();
         CollectionRequest collectionRequest = new CollectionRequest();
         DisabilitySearchCriteria searchCriteria = new DisabilitySearchCriteria();
         searchCriteria.IncludeArchived = false;
         DisabilitySearchReturnValue returnValue = contactService.DisabilitySearch(_logonId,
                                                         collectionRequest, searchCriteria);
         if (returnValue.Success)
         {
             _ddlDisability.DataSource = returnValue.Disabilities.Rows;
             _ddlDisability.DataTextField = "Description";
             _ddlDisability.DataValueField = "Id";
             _ddlDisability.DataBind();
         }
         else
         {
             throw new Exception(returnValue.Message);
         }
     }
     catch (Exception ex)
     {
         throw ex;
     }
     finally
     {
         if (contactService != null)
         {
             if (contactService.State != System.ServiceModel.CommunicationState.Faulted)
                 contactService.Close();
         }
     }
 }
        public CashCollectionSearchReturnValue CashCollectionSearch(HostSecurityToken oHostSecurityToken, IRIS.Law.WebServiceInterfaces.CollectionRequest collectionRequest, CashCollectionSearchCriteria criteria)
        {
            CashCollectionSearchReturnValue returnValue = null;

            if (Functions.ValidateIWSToken(oHostSecurityToken))
            {
                oMatterService = new MatterService();
                returnValue    = oMatterService.CashCollectionSearch(Functions.GetLogonIdFromToken(oHostSecurityToken), collectionRequest, criteria);
            }
            else
            {
                returnValue         = new CashCollectionSearchReturnValue();
                returnValue.Success = false;
                returnValue.Message = "Invalid Token";
            }
            return(returnValue);
        }
        /// <summary>
        /// Show/hide the search that can be performed based on the selected association role id
        /// </summary>
        private void ShowHideAssociationSearch()
        {
            if (_ddlRole.Items.Count > 0)
            {
                CheckForClientOnSpecialMatters();

                //Create a json object that will be used to show/hide the available searches.
                string jsonStr = "{";

                ContactServiceClient contactService = null;

                try
                {
                    CollectionRequest collectionRequest = new CollectionRequest();
                    AssociationRoleSearchCriteria associationRoleCriteria = new AssociationRoleSearchCriteria();
                    associationRoleCriteria.RoleId = Convert.ToInt32(_ddlRole.SelectedValue);
                    contactService = new ContactServiceClient();
                    AssociationRoleSearchReturnValue associationRoleReturnValue =
                                                contactService.AssociationRoleForRoleIdSearch(_logonSettings.LogonId,
                                                                                     collectionRequest,
                                                                                     associationRoleCriteria);
                    if (associationRoleReturnValue.Success)
                    {
                        if (associationRoleReturnValue.AssociationRole != null)
                        {
                            // Decide which rows to Show/Hide based on the selected role.
                            // Build a json object which will be used to show/hide the options using js
                            if (associationRoleReturnValue.AssociationRole.Rows.Length > 0)
                            {
                                // Client & Matter.
                                if ((associationRoleReturnValue.AssociationRole.Rows[0].AssociationRoleSearchClient) &&
                                    (associationRoleReturnValue.AssociationRole.Rows[0].AssociationRoleSearchMatter))
                                {
                                    _lblClientSearch.Text = "Client/Matter";
                                    jsonStr += "\"ClientSearch\":\"true\"";
                                    _clientSearch.DisplayMattersForClientGridview = true;
                                }
                                // Client.
                                else if (associationRoleReturnValue.AssociationRole.Rows[0].AssociationRoleSearchClient)
                                {
                                    _lblClientSearch.Text = "Client";
                                    jsonStr += "\"ClientSearch\":\"true\"";
                                    _clientSearch.DisplayMattersForClientGridview = false;
                                }
                                // Matter.
                                else if (associationRoleReturnValue.AssociationRole.Rows[0].AssociationRoleSearchMatter)
                                {
                                    _lblClientSearch.Text = "Matter";
                                    jsonStr += "\"ClientSearch\":\"true\"";
                                    _clientSearch.DisplayMattersForClientGridview = true;
                                }
                                else
                                {
                                    jsonStr += "\"ClientSearch\":\"false\"";
                                }

                                // General Contact.
                                if (associationRoleReturnValue.AssociationRole.Rows[0].AssociationRoleSearchGeneral)
                                {
                                    jsonStr += ",\"ContactSearch\":\"true\"";
                                }
                                else
                                {
                                    jsonStr += ",\"ContactSearch\":\"false\"";
                                }

                                // Service Contact.
                                if (associationRoleReturnValue.AssociationRole.Rows[0].AssociationRoleSearchService)
                                {
                                    jsonStr += ",\"ServiceSearch\":\"true\"";
                                }
                                else
                                {
                                    jsonStr += ",\"ServiceSearch\":\"false\"";
                                }

                                // Search for Fee Earner
                                if (associationRoleReturnValue.AssociationRole.Rows[0].AssociationRoleSearchFeeEarner)
                                {
                                    jsonStr += ",\"FeeEarnerSearch\":\"true\"";
                                }
                                else
                                {
                                    jsonStr += ",\"FeeEarnerSearch\":\"false\"";
                                }

                                jsonStr += "}";

                                _hdnSearchDisplay.Value = jsonStr;

                                // Determine whether the selected Association Role requires a specialised search.
                                if (associationRoleReturnValue.AssociationRole.Rows[0].AssociationRoleSpecialisedSearch)
                                {
                                    _hdnIsSpecialisedSearch.Value = "true";
                                }
                                else
                                {
                                    _hdnIsSpecialisedSearch.Value = "false";
                                }
                            }
                        }
                    }
                    else
                    {
                        throw new Exception(associationRoleReturnValue.Message);
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {
                    if (contactService != null)
                    {
                        if (contactService.State != System.ServiceModel.CommunicationState.Faulted)
                            contactService.Close();
                    }
                }
            }
        }
Example #20
0
        /// <summary>
        /// Get a list of ethnicity values that match the search criteria
        /// </summary>
        /// <param name="oHostSecurityToken">HostSecurityToken obtained when security provider of IWS is called</param>
        /// <param name="collectionRequest">Information about the collection being requested.</param>
        /// <param name="criteria">Ethnicity search criteria</param>
        /// <returns></returns>
        public EthnicitySearchReturnValue EthnicitySearch(HostSecurityToken oHostSecurityToken, IRIS.Law.WebServiceInterfaces.CollectionRequest collectionRequest, EthnicitySearchCriteria criteria)
        {
            EthnicitySearchReturnValue returnValue = null;

            if (Functions.ValidateIWSToken(oHostSecurityToken))
            {
                oContactService = new ContactService();
                returnValue     = oContactService.EthnicitySearch(Functions.GetLogonIdFromToken(oHostSecurityToken), collectionRequest, criteria);
            }
            else
            {
                returnValue         = new EthnicitySearchReturnValue();
                returnValue.Success = false;
                returnValue.Message = "Invalid Token";
            }
            return(returnValue);
        }
        private void LoadMatterFeeEarner(Guid ProjectID)
        {
            MatterServiceClient matterService = new MatterServiceClient();
            try
            {
                MatterReturnValue matterReturnValue = new MatterReturnValue();
                matterReturnValue = matterService.GetMatter(_logonSettings.LogonId, ProjectID);

                if (matterReturnValue.Success)
                {
                    if (matterReturnValue != null)
                    {
                        if (matterReturnValue.Matter.FeeEarnerMemberId != null)
                        {
                            EarnerServiceClient partnerClient = new EarnerServiceClient();
                            try
                            {
                                PartnerSearchCriteria partnerCriteria = new PartnerSearchCriteria();
                                CollectionRequest collectionRequest = new CollectionRequest();
                                collectionRequest.StartRow = 0;

                                PartnerSearchReturnValue partnerReturnValue = partnerClient.PartnerSearch(_logonSettings.LogonId, collectionRequest, partnerCriteria);

                                if (partnerReturnValue.Success)
                                {
                                    if (partnerReturnValue.Partners != null)
                                    {
                                        for (int i = 0; i < partnerReturnValue.Partners.Rows.Length; i++)
                                        {
                                            if (partnerReturnValue.Partners.Rows[i].PartnerId.ToString() == matterReturnValue.Matter.FeeEarnerMemberId.ToString())
                                            {
                                                _txtAttendees.Text = CommonFunctions.MakeFullName(partnerReturnValue.Partners.Rows[i].PersonTitle, partnerReturnValue.Partners.Rows[i].Name, partnerReturnValue.Partners.Rows[i].Surname);
                                                _hdnAttendeesMemberId.Value = partnerReturnValue.Partners.Rows[i].PartnerId.ToString() + ";";
                                            }

                                        }
                                    }
                                }
                                else
                                {
                                    _lblError.Text = partnerReturnValue.Message;
                                }
                            }
                            catch (Exception ex)
                            {
                                throw ex;
                            }
                            finally
                            {
                                if (partnerClient.State != System.ServiceModel.CommunicationState.Faulted)
                                    partnerClient.Close();
                            }

                        }
                    }

                }

            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (matterService.State != System.ServiceModel.CommunicationState.Faulted)
                    matterService.Close();
            }
        }
        private void GetDefaultFeeEarnerDetails()
        {
            DiaryServiceClient diaryService = null;
            _txtAttendees.Text = string.Empty;
            _hdnAttendeesMemberId.Value = string.Empty;
            try
            {
                diaryService = new DiaryServiceClient();

                CollectionRequest collectionRequest = new CollectionRequest();
                collectionRequest.ForceRefresh = true;
                collectionRequest.StartRow = 0;
                collectionRequest.RowCount = 0;

                DiaryMemberSearchReturnValue returnValue = new DiaryMemberSearchReturnValue();
                returnValue = diaryService.GetDiaryMembers(_logonSettings.LogonId, collectionRequest);

                if (returnValue.Success)
                {
                    for (int i = 0; i < returnValue.DiaryMembers.Rows.Length; i++)
                    {
                        if (_logonSettings.UserDefaultFeeMemberId.ToString() == returnValue.DiaryMembers.Rows[i].MemberID)
                        {
                            _txtAttendees.Text = _txtAttendees.Text + returnValue.DiaryMembers.Rows[i].MemberDisplayName + "; ";
                            _hdnAttendeesMemberId.Value += _hdnAttendeesMemberId.Value + returnValue.DiaryMembers.Rows[i].MemberID + "; ";
                        }
                    }
                }
                else
                {
                    throw new Exception(returnValue.Message);
                }
            }
            catch (System.ServiceModel.EndpointNotFoundException)
            {
                _lblError.Text = DataConstants.WSEndPointErrorMessage;
                _lblError.CssClass = "errorMessage";
            }
            catch (Exception ex)
            {
                _lblError.Text = ex.Message;
                _lblError.CssClass = "errorMessage";
            }
            finally
            {
                if (diaryService != null)
                {
                    if (diaryService.State != System.ServiceModel.CommunicationState.Faulted)
                        diaryService.Close();
                }
            }
        }
        private void BindTaskTypes()
        {
            DiaryServiceClient diaryService = null;
            try
            {
                diaryService = new DiaryServiceClient();

                CollectionRequest collectionRequest = new CollectionRequest();
                collectionRequest.ForceRefresh = true;
                collectionRequest.StartRow = 0;
                collectionRequest.RowCount = 0;

                DiaryParameterReturnValue returnValue = new DiaryParameterReturnValue();
                returnValue = diaryService.GetTaskTypes(_logonSettings.LogonId, collectionRequest);

                if (returnValue.Success)
                {
                    _ddlType.DataSource = returnValue.DiaryParamters.Rows;
                    _ddlType.DataTextField = "Description";
                    _ddlType.DataValueField = "Id";
                    _ddlType.DataBind();

                    if (_logonSettings.UserType == (int)DataConstants.UserType.Client ||
                        _logonSettings.UserType == (int)DataConstants.UserType.ThirdParty)
                    {
                        for (int i = 0; i < _ddlType.Items.Count - 1; i++)
                        {
                            if (_ddlType.Items[i].Text != "Standard Task")
                            {
                                _ddlType.Items.RemoveAt(i);
                            }
                        }

                        _ddlType.Enabled = false;
                    }
                }
                else
                {
                    throw new Exception(returnValue.Message);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (diaryService != null)
                {
                    if (diaryService.State != System.ServiceModel.CommunicationState.Faulted)
                        diaryService.Close();
                }
            }
        }
        /// <summary>
        /// Method to display the available address types.
        /// </summary>
        private void GetAddressTypes()
        {
            ContactServiceClient contactService = null;
            try
            {
                CollectionRequest collectionRequest = new CollectionRequest();
                AddressTypeSearchCriteria searchCriteria = new AddressTypeSearchCriteria();
                searchCriteria.MemberId = _memId;
                searchCriteria.OrganisationId = _orgId;

                contactService = new ContactServiceClient();
                AddressTypeReturnValue returnValue = contactService.GetAddressTypes(_logonId, collectionRequest, searchCriteria);

                if (returnValue.Success)
                {
                    _ddlAddressType.DataSource = returnValue.AddressTypes.Rows;
                    _ddlAddressType.DataTextField = "Description";
                    _ddlAddressType.DataValueField = "Id";
                    _ddlAddressType.DataBind();
                }
                else
                {
                    throw new Exception(returnValue.Message);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (contactService != null)
                {
                    if (contactService.State != System.ServiceModel.CommunicationState.Faulted)
                        contactService.Close();
                }
            }
        }
        private void GetCampaigns(DropDownList dropDownList)
        {
            ContactServiceClient contactService = null;
            try
            {
                contactService = new ContactServiceClient();
                CollectionRequest collectionRequest = new CollectionRequest();
                CampaignSearchCriteria searchCriteria = new CampaignSearchCriteria();
                CampaignSearchReturnValue returnValue = contactService.CampaignSearch(_logonId, collectionRequest,
                                                                                       searchCriteria);

                if (returnValue.Success)
                {
                    dropDownList.DataSource = returnValue.Campaigns.Rows;
                    dropDownList.DataTextField = "Description";
                    dropDownList.DataValueField = "CampaignId";
                    dropDownList.DataBind();
                    dropDownList.Items.Insert(0, "");
                }
                else
                {
                    throw new Exception(returnValue.Message);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (contactService != null)
                {
                    if (contactService.State != System.ServiceModel.CommunicationState.Faulted)
                        contactService.Close();
                }
            }
        }
        /// <summary>
        /// Binds fee earners
        /// </summary>
        private void BindFeeEarner()
        {
            EarnerServiceClient earnerService = null;
            try
            {
                CollectionRequest collectionRequest = new CollectionRequest();

                EarnerSearchCriteria criteria = new EarnerSearchCriteria();
                criteria.IncludeArchived = false;
                criteria.MultiOnly = false;

                earnerService = new EarnerServiceClient();
                EarnerSearchReturnValue returnValue = earnerService.EarnerSearch(_logonSettings.LogonId,
                                            collectionRequest, criteria);

                if (returnValue.Success)
                {
                    _ddlFeeEarner.Items.Clear();
                    foreach (EarnerSearchItem feeEarner in returnValue.Earners.Rows)
                    {
                        ListItem item = new ListItem();
                        item.Text = CommonFunctions.MakeFullName(feeEarner.Title, feeEarner.Name, feeEarner.SurName);
                        item.Value = feeEarner.Id.ToString();
                        _ddlFeeEarner.Items.Add(item);
                    }
                }
                else
                {
                    throw new Exception(returnValue.Message);
                }
                AppFunctions.AddDefaultToDropDownList(_ddlFeeEarner);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (earnerService != null)
                {
                    if (earnerService.State != System.ServiceModel.CommunicationState.Faulted)
                        earnerService.Close();
                }
            }
        }
        /// <summary>
        /// Gets the industries.
        /// </summary>
        private void GetIndustries()
        {
            ContactServiceClient contactService = null;
            try
            {
                contactService = new ContactServiceClient();
                CollectionRequest collectionRequest = new CollectionRequest();
                IndustrySearchCriteria searchCriteria = new IndustrySearchCriteria();
                IndustrySearchReturnValue returnValue = contactService.IndustrySearch(_logonId,
                                                                collectionRequest, searchCriteria);
                if (returnValue.Success)
                {
                    //Add a blank item
                    _ddlIndustry.Items.Add(new ListItem("", "0"));

                    //Generate the items to be displayed in the Industry drop down list
                    //Get the main items
                    string industryText = string.Empty;
                    foreach (IndustrySearchItem industry in returnValue.Industries.Rows)
                    {
                        if (industry.ParentId == 0)
                        {
                            industryText = industry.Name;
                            _ddlIndustry.Items.Add(new ListItem(industryText, industry.Id.ToString()));

                            // Call method to get the sub items
                            GetIndustrySubItems(returnValue.Industries.Rows, industryText, industry.Id);
                        }
                    }
                }
                else
                {
                    throw new Exception(returnValue.Message);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (contactService != null)
                {
                    if (contactService.State != System.ServiceModel.CommunicationState.Faulted)
                        contactService.Close();
                }
            }
        }
        /// <summary>
        /// Gets the address.
        /// </summary>
        /// <param name="memId">The mem id.</param>
        /// <param name="orgId">The org id.</param>
        /// <returns></returns>
        private string GetAddress(Guid memId, Guid orgId)
        {
            string addressLine1 = string.Empty;
            ClientServiceClient clientService = null;

            try
            {
                CollectionRequest collectionRequest = new CollectionRequest();
                AddressSearchCriteria criteria = new AddressSearchCriteria();
                criteria.MemberId = memId;
                criteria.OrganisationId = orgId;

                clientService = new ClientServiceClient();
                AddressSearchReturnValue returnValue = clientService.GetClientAddresses(_logonSettings.LogonId,
                                                                                       collectionRequest,
                                                                                       criteria);

                if (returnValue.Success)
                {
                    if (returnValue.Addresses.Rows.Length > 0)
                    {
                        addressLine1 = returnValue.Addresses.Rows[0].Line1;
                    }
                }
                else
                {
                    throw new Exception(returnValue.Message);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (clientService != null)
                {
                    if (clientService.State != System.ServiceModel.CommunicationState.Faulted)
                        clientService.Close();
                }
            }

            return addressLine1;
        }
        /// <summary>
        /// Loads the client details.
        /// </summary>
        private void LoadAddressDetails()
        {
            ClientServiceClient serviceClient = null;
            try
            {
                serviceClient = new ClientServiceClient();
                _addressSearchReturnValue = new AddressSearchReturnValue();
                CollectionRequest collectionRequest = new CollectionRequest();
                AddressSearchCriteria searchCriteria = new AddressSearchCriteria();
                searchCriteria.MemberId = _memId;
                searchCriteria.OrganisationId = _orgId;
                _addressSearchReturnValue = serviceClient.GetClientAddresses(_logonId, collectionRequest, searchCriteria);

                if (_addressSearchReturnValue.Success)
                {
                    GetAddressTypes();
                    DisplayAddressDetails();
                }
                else
                {
                    throw new Exception(_addressSearchReturnValue.Message);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (serviceClient != null)
                {
                    if (serviceClient.State != System.ServiceModel.CommunicationState.Faulted)
                        serviceClient.Close();
                }
            }
        }
        /// <summary>
        /// Gets the supplimentary details for the role
        /// </summary>
        private void GetRoleExtendedInfo()
        {
            ContactServiceClient contactService = null;
            try
            {
                CollectionRequest collectionRequest = new CollectionRequest();
                RoleExtendedInfoSearchCriteria criteria = new RoleExtendedInfoSearchCriteria();
                criteria.AssociationRoleId = Convert.ToInt32(_ddlRole.SelectedValue);

                contactService = new ContactServiceClient();
                RoleExtendedInfoReturnValue returnValue = contactService.RoleExtendedInfoSearch(_logonSettings.LogonId,
                                            criteria, collectionRequest);

                if (returnValue.Success)
                {
                    //Set to false so that the info is not fetched again from the service if the user
                    //navigates back and does not change the role
                    _hdnRefreshRoleExtInfo.Value = "false";

                    if (returnValue.RoleExtendedInfo.Rows.Length > 0)
                    {
                        _grdAdditionalAssociationInfo.DataSource = returnValue.RoleExtendedInfo.Rows;
                        _grdAdditionalAssociationInfo.DataBind();
                    }
                    else
                    {
                        _grdAdditionalAssociationInfo.DataSource = null;
                        _grdAdditionalAssociationInfo.DataBind();

                        _wizardAddAssociationsForMatter.WizardSteps.Remove(_wizardStepAdditionalAssociationInfo2);
                    }
                }
                else
                {
                    throw new Exception(returnValue.Message);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (contactService != null)
                {
                    if (contactService.State != System.ServiceModel.CommunicationState.Faulted)
                        contactService.Close();
                }
            }
        }
        /// <summary>
        /// Binds association roles
        /// </summary>
        private void BindAssociationRoles()
        {
            ContactServiceClient contactService = new ContactServiceClient();

            try
            {
                CollectionRequest collectionRequest = new CollectionRequest();

                AssociationRoleSearchCriteria associationRoleCriteria = new AssociationRoleSearchCriteria();
                //PMS
                associationRoleCriteria.ApplicationId = 1;

                AssociationRoleSearchReturnValue associationRoleReturnValue =
                                            contactService.AssociationRoleForApplicationSearch(_logonSettings.LogonId,
                                                                                 collectionRequest,
                                                                                 associationRoleCriteria);
                if (associationRoleReturnValue.Success)
                {
                    if (associationRoleReturnValue.AssociationRole != null)
                    {
                        //Sort based on AssociationRoleDescription
                        IEnumerable<AssociationRoleSearchItem> assocRolesSorted =
                            associationRoleReturnValue.AssociationRole.Rows.OrderBy(role => role.AssociationRoleDescription);

                        _ddlRole.DataSource = assocRolesSorted;
                        _ddlRole.DataTextField = "AssociationRoleDescription";
                        _ddlRole.DataValueField = "AssociationRoleID";
                        _ddlRole.DataBind();
                    }
                }
                else
                {
                    throw new Exception(associationRoleReturnValue.Message);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (contactService.State != System.ServiceModel.CommunicationState.Faulted)
                    contactService.Close();
            }
        }
        /// <summary>
        /// Binds VAT rates
        /// </summary>
        private void BindVatRates()
        {
            AccountsServiceClient accountsService = null;
            try
            {
                CollectionRequest collectionRequest = new CollectionRequest();

                VatRateSearchCriteria criteria = new VatRateSearchCriteria();
                criteria.IncludeArchived = false;
                criteria.IncludeNonVatable = false;

                accountsService = new AccountsServiceClient();

                VatRateSearchReturnValue vatReturnValue = accountsService.VatRateSearch(_logonSettings.LogonId,
                                                            collectionRequest, criteria);

                if (vatReturnValue.Success)
                {
                    if (vatReturnValue.VatRates != null)
                    {
                        for (int i = 0; i < vatReturnValue.VatRates.Rows.Length; i++)
                        {
                            ListItem item = new ListItem(vatReturnValue.VatRates.Rows[i].Description, vatReturnValue.VatRates.Rows[i].Id.ToString() + "$" + vatReturnValue.VatRates.Rows[i].Percentage.ToString());

                            if (vatReturnValue.VatRates.Rows[i].IsDefault)
                            {
                                _ddlVATRate.SelectedIndex = -1;
                                item.Selected = true;
                            }
                            _ddlVATRate.Items.Add(item);
                        }
                    }
                }
                else
                {
                    throw new Exception(vatReturnValue.Message);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (accountsService != null)
                {
                    if (accountsService.State != System.ServiceModel.CommunicationState.Faulted)
                        accountsService.Close();
                }
            }
        }