Esempio n. 1
0
        public GetRegulatorCompaniesResult GetCompaniesByRegulator(GetRegulatorCompaniesParams cmpParams)
        {
            string        spName = "[SP_Get_Companies_By_Regulator]";
            SqlConnection conn   = OpenConnection("ConnectionStringFilings");

            GetRegulatorCompaniesResult result = new GetRegulatorCompaniesResult();

            SqlCommand cmd = new SqlCommand();

            cmd.CommandText = schema + "." + spName;
            cmd.CommandType = System.Data.CommandType.StoredProcedure;
            cmd.Connection  = conn;

            // User email
            SqlParameter paramRegCode = new SqlParameter("@RegulatorCode", SqlDbType.NVarChar, 255, ParameterDirection.Input, false, 0, 0, "", DataRowVersion.Current, cmpParams.RegulatorCode);

            cmd.Parameters.Add(paramRegCode);

            DataSet        ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter();

            da.SelectCommand = cmd;

            da.Fill(ds);
            if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
            {
                foreach (DataRow r in ds.Tables[0].Rows)
                {
                    Interfaces.DAL.CompanyInfo cmpInfo = new Interfaces.DAL.CompanyInfo();
                    cmpInfo.LastFilingInfo = new CompanyFilingInfo();

                    cmpInfo.Code = (string)r["Company_Code"];
                    cmpInfo.Name = DBNull.Value != r["Company_Name"] ? (string)r["Company_Name"] : string.Empty;
                    cmpInfo.CompanyRegulatorID         = string.Empty; // TODO: need to add extra record to SP result
                    cmpInfo.LastFilingInfo.Name        = DBNull.Value != r["Last_Report_Name"] ? (string)r["Last_Report_Name"] : string.Empty;
                    cmpInfo.LastFilingInfo.Type        = DBNull.Value != r["Last_Report_Type"] ? (string)r["Last_Report_Type"] : string.Empty;
                    cmpInfo.LastFilingInfo.PeriodEnd   = DBNull.Value != r["Last_Report_End_Dt"] ? (DateTime)r["Last_Report_End_Dt"] : DateTime.MinValue;
                    cmpInfo.LastFilingInfo.PeriodStart = DBNull.Value != r["Last_Report_Start_Dt"] ? (DateTime)r["Last_Report_Start_Dt"] : DateTime.MinValue;
                    cmpInfo.LastFilingInfo.Submitted   = DBNull.Value != r["Last_Report_Submit_Dt"] ? (DateTime)r["Last_Report_Submit_Dt"] : DateTime.MinValue;

                    result.Companies.Add(cmpInfo);
                }
            }
            else
            {
                result = null;
            }

            conn.Close();

            return(result);
        }
        public object Any(GetCompanies request)
        {
            DateTime dtStart = DateTime.UtcNow;

            _logger.Log(EErrorType.Info, " ****** Call start: GetCompanies");
            GetCompaniesResponse response = new GetCompaniesResponse();

            TransferHeader(request, response);

            EErrorCodes valSession = ValidateSession(request.SessionToken);

            if (valSession == EErrorCodes.Success)
            {
                try
                {
                    GetRegulatorCompaniesParams getCmpParams = new GetRegulatorCompaniesParams();
                    getCmpParams.RegulatorCode = request.RegulatorCode;
                    var companies = _dal.GetCompaniesByRegulator(getCmpParams);
                    if (companies != null && companies.Companies != null)
                    {
                        foreach (var c in companies.Companies)
                        {
                            response.Payload.Companies.Add(new DTO.CompanyInfo()
                            {
                                Name       = c.Name,
                                Code       = c.Code,
                                LastUpdate = c.LastUpdated != DateTime.MinValue ? (DateTime?)c.LastUpdated : null
                            });
                        }
                    }
                    else
                    {
                        response.Errors.Add(new Error()
                        {
                            Code    = EErrorCodes.EmptyCollection,
                            Type    = EErrorType.Warning,
                            Message = string.Format("No companies found for regulator {0}", request.RegulatorCode)
                        });
                    }

                    response.Payload.RegulatorCode = request.RegulatorCode;
                    response.Success = true;
                }
                catch (Exception ex)
                {
                    _logger.Log(ex);
                    response.Success = false;
                    response.Errors.Add(new Error()
                    {
                        Code = EErrorCodes.GeneralError, Type = EErrorType.Error, Message = string.Format("Unpexcted error: {0}", ex.Message)
                    });
                }
            }
            else
            {
                response.Success = false;
                response.Errors.Add(new Error()
                {
                    Code = EErrorCodes.InvalidSession, Type = EErrorType.Error, Message = string.Format("Invalid session")
                });
            }

            DateTime dtEnd = DateTime.UtcNow;

            _logger.Log(EErrorType.Info, string.Format(" ****** Call end: GetCompanies\t{0}", dtEnd - dtStart));

            return(response);
        }