예제 #1
0
        /// <summary>
        /// Deletes the company information.
        /// </summary>
        /// <param name="companyInfo">The company information.</param>
        /// <returns></returns>
        /// <exception cref="ArgumentNullException">companyInfo</exception>
        public ICompanyRegistrationView DeleteCompanyInfo(ICompanyRegistrationView companyInfo)
        {
            if (companyInfo == null)
            {
                throw new ArgumentNullException(nameof(companyInfo));
            }

            var processingMessage = string.Empty;
            var isDataOkay        = true;

            //Generate a Return View Model
            var returnViewModel = adminViewModelFactory.CreateUpdatedCompanyView(companyInfo, processingMessage);

            //If Not
            //Store Grade Information
            if (!isDataOkay)
            {
                return(returnViewModel);
            }

            var updateData = this.companyRepository.DeleteCompanyInfo(companyInfo);


            return(returnViewModel);
        }
예제 #2
0
        /// <summary>
        /// Deletes the company information.
        /// </summary>
        /// <param name="companyInfo">The company information.</param>
        /// <returns></returns>
        /// <exception cref="ArgumentNullException">companyInfo</exception>
        /// <exception cref="System.ArgumentNullException">companyInfo</exception>
        public string DeleteCompanyInfo(ICompanyRegistrationView companyInfo)
        {
            if (companyInfo == null)
            {
                throw new ArgumentNullException(nameof(companyInfo));
            }

            var result = string.Empty;


            try
            {
                using (
                    var dbContext = (HRMSEntities)this.dbContextFactory.GetDbContext(ObjectContextType.HRMS))
                {
                    var companyData =
                        dbContext.Companies.SingleOrDefault(m => m.CompanyId.Equals(companyInfo.CompanyId));
                    companyData.IsActive = false;
                    dbContext.SaveChanges();
                }
            }
            catch (Exception e)
            {
                result = string.Format("Update Company - {0} , {1}", e.Message,
                                       e.InnerException != null ? e.InnerException.Message : "");
            }

            return(result);
        }
예제 #3
0
        /// <summary>
        /// Creates the updated company view.
        /// </summary>
        /// <param name="companyInfo">The company information.</param>
        /// <param name="processingMessage">The processing message.</param>
        /// <returns></returns>
        /// <exception cref="ArgumentNullException">companyInfo</exception>
        public ICompanyRegistrationView CreateUpdatedCompanyView(ICompanyRegistrationView companyInfo,
                                                                 string processingMessage)
        {
            if (companyInfo == null)
            {
                throw new ArgumentNullException(nameof(companyInfo));
            }

            companyInfo.ProcessingMessage = processingMessage;

            return(companyInfo);
        }
예제 #4
0
        /// <summary>
        /// Saves the company registration information.
        /// </summary>
        /// <param name="companyInfo">The company information.</param>
        /// <returns>
        /// System.String.
        /// </returns>
        /// <exception cref="ArgumentNullException">companyInfo</exception>
        public string SaveCompanyRegistrationInfo(ICompanyRegistrationView companyInfo, out int companyId)
        {
            if (companyInfo == null)
            {
                throw new ArgumentNullException(nameof(companyInfo));
            }

            var result = string.Empty;

            var newRecord = new Company
            {
                CompanyAddressLine1   = companyInfo.CompanyAddressLine1,
                CompanyAddressLine2   = companyInfo.CompanyAddressLine2,
                CompanyCity           = companyInfo.CompanyCity,
                IsActive              = companyInfo.IsActive,
                CompanyEmail          = companyInfo.CompanyEmail,
                CompanyCountryId      = companyInfo.CompanyCountryId,
                DateCreated           = DateTime.Now,
                LogoDigitalFileId     = companyInfo.LogoDigitalFileId,
                CompanyName           = companyInfo.CompanyName,
                CompanyPhone          = companyInfo.CompanyPhone,
                CompanyState          = companyInfo.CompanyState,
                CompanyWebsite        = companyInfo.CompanyWebsite,
                CompanyZipCode        = companyInfo.CompanyZipCode,
                ParentCompanyId       = companyInfo.ParentCompanyId,
                CACRegistrationNumber = companyInfo.CACRegistrationNumber,
                CompanyAlias          = companyInfo.CompanyAlias,
                IndustryId            = companyInfo.IndustryId,
            };

            try
            {
                using (
                    var dbContext = (HRMSEntities)this.dbContextFactory.GetDbContext(ObjectContextType.HRMS))
                {
                    dbContext.Companies.Add(newRecord);
                    dbContext.SaveChanges();
                }
            }
            catch (Exception e)
            {
                var a = e;

                result = string.Format("SaveCompanyRegistrationInfo - {0} , {1}", e.Message,
                                       e.InnerException != null ? e.InnerException.Message : "");
            }


            companyId = newRecord.CompanyId;

            return(result);
        }
예제 #5
0
        /// <summary>
        /// Gets the register company view model.
        /// </summary>
        /// <param name="viewModel">The view model.</param>
        /// <param name="message">The message.</param>
        /// <returns></returns>
        public ICompanyRegistrationView GetRegisterCompanyViewModel(ICompanyRegistrationView viewModel, string message)
        {
            var userInfo = usersRepository.GetUserById((int)this.session.GetSessionValue(SessionKey.UserId));

            // get company collection  to build Parent company drop down list
            var companyCollection = this.companyRepository.GetMyCompanies(userInfo.CompanyId);

            var industryCollection = this.lookupRepository.GetIndustryCollection().ToList();

            var counrtyCollection = this.lookupRepository.GetCountryCollection();

            //Get View Model From Factory
            viewModel = this.adminViewModelFactory.CreateCompanyRegistrationView(viewModel, companyCollection,
                                                                                 industryCollection, counrtyCollection, message);

            return(viewModel);
        }
예제 #6
0
        /// <summary>
        /// Updates the company registration information.
        /// </summary>
        /// <param name="companyInfo">The company information.</param>
        /// <returns></returns>
        /// <exception cref="ArgumentNullException">companyInfo</exception>
        public string UpdateCompanyRegistrationInfo(ICompanyRegistrationView companyInfo)
        {
            if (companyInfo == null)
            {
                throw new ArgumentNullException(nameof(companyInfo));
            }

            var result = string.Empty;

            try
            {
                using (
                    var dbContext = (HRMSEntities)this.dbContextFactory.GetDbContext(ObjectContextType.HRMS))
                {
                    var aRecord = dbContext.Companies.FirstOrDefault(x => x.CompanyId.Equals(companyInfo.CompanyId));
                    aRecord.CACRegistrationNumber = companyInfo.CACRegistrationNumber;
                    aRecord.CompanyName           = companyInfo.CompanyName;
                    aRecord.CompanyAddressLine1   = companyInfo.CompanyAddressLine1;
                    aRecord.CompanyAddressLine2   = companyInfo.CompanyAddressLine2;
                    aRecord.CompanyCity           = companyInfo.CompanyCity;
                    aRecord.CompanyState          = companyInfo.CompanyState;
                    aRecord.CompanyCountryId      = companyInfo.CompanyCountryId;
                    aRecord.CompanyZipCode        = companyInfo.CompanyZipCode;
                    aRecord.CompanyEmail          = companyInfo.CompanyEmail;
                    aRecord.CompanyPhone          = companyInfo.CompanyPhone;
                    aRecord.CompanyWebsite        = companyInfo.CompanyWebsite;
                    aRecord.LogoDigitalFileId     = companyInfo.LogoDigitalFileId;
                    aRecord.ParentCompanyId       = companyInfo.ParentCompanyId;
                    aRecord.CompanyAlias          = companyInfo.CompanyAlias;
                    aRecord.IndustryId            = companyInfo.IndustryId;


                    dbContext.SaveChanges();
                }
            }
            catch (Exception e)
            {
                var a = e;

                result = string.Format("UpdateCompanyRegistrationInfo - {0} , {1}", e.Message,
                                       e.InnerException != null ? e.InnerException.Message : "");
            }

            return(result);
        }
예제 #7
0
        /// <summary>
        /// Updates the company registration information.
        /// </summary>
        /// <param name="companyRegistrationInfo">The company registration information.</param>
        /// <returns></returns>
        /// <exception cref="ArgumentNullException">companyRegistrationInfo</exception>
        public string UpdateCompanyRegistrationInfo(ICompanyRegistrationView companyRegistrationInfo, HttpPostedFileBase companyLogo)
        {
            if (companyRegistrationInfo == null)
            {
                throw new ArgumentNullException(nameof(companyRegistrationInfo));
            }

            if (companyLogo != null)
            {
                int digitalFileId = 0;

                //Save Company Logo
                var digitalFile = this.digitalFileService.SaveFile(FileType.Image, companyLogo, out digitalFileId);

                companyRegistrationInfo.LogoDigitalFileId = digitalFileId;

                session.RemoveSessionValue(SessionKey.CompanyLogo);

                var imgSrc = companyRegistrationInfo.CompanyName;

                byte[] theContent;

                using (Stream inputStream = companyLogo.InputStream)
                {
                    MemoryStream memoryStream = inputStream as MemoryStream;
                    if (memoryStream == null)
                    {
                        memoryStream = new MemoryStream();
                        inputStream.CopyTo(memoryStream);
                    }
                    theContent = memoryStream.ToArray();
                }

                var base64 = Convert.ToBase64String(theContent);
                imgSrc = string.Format("data:{0};base64,{1}", companyLogo.ContentType, base64);
            }

            var processingMessage = this.companyRepository.UpdateCompanyRegistrationInfo(companyRegistrationInfo);

            return(processingMessage);
        }
예제 #8
0
        /// <summary>
        /// Creates the company registration view.
        /// </summary>
        /// <param name="companyInfo">The company information.</param>
        /// <param name="companyCollection">The company collection.</param>
        /// <param name="industryCollection"></param>
        /// <param name="processingMessage">The processing message.</param>
        /// <returns></returns>
        /// <exception cref="ArgumentNullException">
        /// companyInfo
        /// or
        /// companyCollection
        /// or
        /// industryCollection
        /// </exception>
        public ICompanyRegistrationView CreateCompanyRegistrationView(ICompanyRegistrationView companyInfo,
                                                                      IList <ICompanyDetail> companyCollection, IList <IIndustry> industryCollection, IList <ICountry> countryCollection,
                                                                      string processingMessage)
        {
            if (companyInfo == null)
            {
                throw new ArgumentNullException(nameof(companyInfo));
            }

            if (companyCollection == null)
            {
                throw new ArgumentNullException(nameof(companyCollection));
            }

            if (industryCollection == null)
            {
                throw new ArgumentNullException(nameof(industryCollection));
            }

            // get parentcompany  drop down list
            var parentCompanytDDL =
                GetDropDownList.CompanyListItems(companyCollection, companyInfo.ParentCompanyId ?? -1);

            var industryDDL =
                GetDropDownList.IIndsutryListItems(industryCollection, companyInfo.IndustryId);

            var countryDDL =
                GetDropDownList.CountryListItem(countryCollection, companyInfo.CompanyCountryId);

            var viewModel = companyInfo;

            viewModel.ParentCompanyDropDownList = parentCompanytDDL;
            viewModel.IndustryDropDownList      = industryDDL;
            viewModel.CountryDropDownList       = countryDDL;
            viewModel.ProcessingMessage         = processingMessage;

            return(viewModel);
        }
예제 #9
0
        /// <summary>
        /// Processes the company registration information.
        /// </summary>
        /// <param name="companyRegistrationInfo">The company registration information.</param>
        /// <returns></returns>
        /// <exception cref="ArgumentNullException">companyRegistrationInfo</exception>
        public string ProcessCompanyRegistrationInfo(ICompanyRegistrationView companyRegistrationInfo, HttpPostedFileBase companyLogo)
        {
            if (companyRegistrationInfo == null)
            {
                throw new ArgumentNullException(nameof(companyRegistrationInfo));
            }

            int userId = (int)this.session.GetSessionValue(SessionKey.UserId);

            int companyId     = 0;
            int digitalFileId = 0;

            string processingMessage = string.Empty;

            //Validate Current Company is Not Registered via CAC Number -

            var companyInfo =
                this.companyRepository.GetCompanyByCACNumber(companyRegistrationInfo.CACRegistrationNumber);

            var userInfo = this.usersRepository.GetUserById(userId);

            if (userInfo.CompanyId > 0 && companyRegistrationInfo.ParentCompanyId < 1)
            {
                processingMessage = Messages.CompanyMostBeAChildofExistingCompany;

                return(processingMessage);
            }

            if (companyInfo != null)
            {
                processingMessage = Messages.CACNumberAlreadyExisted;
            }
            else
            {
                //Save Company Logo
                var digitalFile = this.digitalFileService.SaveFile(FileType.Image, companyLogo, out digitalFileId);

                //Passing the digital fileId into the companyInfo
                companyRegistrationInfo.LogoDigitalFileId = digitalFileId;

                //Store Compnay Information
                processingMessage = this.companyRepository.SaveCompanyRegistrationInfo(companyRegistrationInfo, out companyId);

                int companySessionId = (int)this.session.GetSessionValue(SessionKey.CompanyId);

                if (companySessionId <= 0)
                {
                    session.AddValueToSession(SessionKey.CompanyId, companyId);
                }


                if (userInfo.CompanyId <= 0)
                {
                    userInfo.CompanyId = companyId;
                    accountRepository.UpdateUserCompany(userInfo);
                    accountRepository.SaveCompanyAdmin(userInfo);
                }
            }

            return(processingMessage);
        }