/// <summary>
        /// WARNING: This could return null;
        /// </summary>
        /// <param name="userIdString"></param>
        /// <param name="companyLocationGroupId"></param>
        /// <returns></returns>
        public CompanyLocationGroupUiDto GetUiDto_CompanyLocationGroupById(string userIdString, Guid companyLocationGroupId)
        {
            AuthorizationState authState          = AuthorizationState.NotAllowed;
            bool isCompanyOwner                   = false;
            var  companyLocationGroup             = GetCompanyLocationGroupById(userIdString, companyLocationGroupId, out authState, out isCompanyOwner);
            CompanyLocationGroupUiDto returnValue = ConvertCompanyLocationGroupToUiDto(companyLocationGroup, authState);

            return(returnValue);
        }
        private CompanyLocationGroupUiDto ConvertCompanyLocationGroupToUiDto(CompanyLocationGroup companyLocationGroup, AuthorizationState authState)
        {
            CompanyLocationGroupUiDto returnValue = null;

            if (companyLocationGroup != null)
            {
                returnValue = _mapper.Map <CompanyLocationGroup, CompanyLocationGroupUiDto>(companyLocationGroup);
                returnValue.AuthState_OnlyTrustOnGeneration = authState;
                companyLocationGroup.CompanyLocations       = companyLocationGroup.CompanyLocations ?? new List <CompanyLocation>();
                returnValue.CompanyLocationUiDtos           = returnValue.CompanyLocationUiDtos ?? new List <CompanyLocationUiDto>();

                foreach (var cLocation in companyLocationGroup.CompanyLocations)
                {
                    CompanyLocationUiDto cLocationUiDto = _mapper.Map <CompanyLocation, CompanyLocationUiDto>(cLocation);
                    cLocationUiDto.AuthState_OnlyTrustOnGeneration = authState;
                    returnValue.CompanyLocationUiDtos.Add(cLocationUiDto);
                }
            }

            return(returnValue);
        }
        public void FromUiDto_AddOrUpdateCompanyLocationGroup(string userIdString, CompanyLocationGroupUiDto companyLocationGroupUiDto)
        {
            if (companyLocationGroupUiDto != null)
            {
                var companyLocationGroup = _mapper.Map <CompanyLocationGroupUiDto, CompanyLocationGroup>(companyLocationGroupUiDto);

                // convert the sub rows of data.
                List <CompanyLocation> companyLocationsList = new List <CompanyLocation>();
                if (companyLocationGroupUiDto.CompanyLocationUiDtos != null && companyLocationGroupUiDto.CompanyLocationUiDtos.Any())
                {
                    foreach (var locationDto in companyLocationGroupUiDto.CompanyLocationUiDtos)
                    {
                        var row = _mapper.Map <CompanyLocationUiDto, CompanyLocation>(locationDto);
                        companyLocationsList.Add(row);
                    }
                }

                companyLocationGroup.CompanyLocations = companyLocationsList;

                AddOrUpdateCompanyLocationGroup(userIdString, companyLocationGroup);
            }
        }