public static void Populate(this List <BulkUploadHistoryViewModel> model, UserContext.UserContextInfo userContext, ProviderPortalEntities db, Constants.BulkUpload_DataType dataType)
        {
            try
            {
                //IQueryable<BulkUploadHistory> historyRecords;
                IQueryable <BulkUpload> historyRecords;

                if (userContext.IsOrganisation())
                {
                    //all providerswhich belongs to the organsiation
                    var providersToSearch = BulkUploadValidateExtension.GetPermittedBulkUploadProviders(db, userContext, dataType);

                    //get history of all the provider which belongs to organisation + organisation's respective upload

                    /*
                     * historyRecords =
                     *  db.BulkUploadHistories.Include("BulkUploadHistoryProviders.Provider")
                     *      .Where(
                     *          x =>
                     *          providersToSearch.Contains(x.UserProviderId.Value)
                     || x.UserOrganisationId == userContext.ItemId);
                     */

                    historyRecords =
                        db.BulkUploads
                        .Include("BulkUploadProviders.Provider")
                        .Where(x =>
                               (providersToSearch.Contains(x.UserProviderId.Value) || x.UserOrganisationId == userContext.ItemId)
                               &&
                               (x.FileContentType == null || x.FileContentType == (int)dataType));
                }
                else
                {
                    /*
                     * historyRecords =
                     *  db.BulkUploadHistories.Include("BulkUploadHistoryProviders.Provider")
                     *      .Where(
                     *          x =>
                     *          x.UserProviderId.HasValue && x.UserProviderId == userContext.ItemId
                     || x.BulkUploadHistoryProviders.Any(p => p.ProviderId == userContext.ItemId));
                     */

                    historyRecords =
                        db.BulkUploads
                        .Include("BulkUploadProviders.Provider")
                        .Where(x =>
                               (x.UserProviderId.HasValue && x.UserProviderId == userContext.ItemId || x.BulkUploadProviders.Any(p => p.ProviderId == userContext.ItemId))
                               &&
                               (x.FileContentType == null || x.FileContentType == (int)dataType));
                }

                foreach (var historyRecord in historyRecords.OrderByDescending(x => x.BulkUploadId))
                {
                    var currentStatus =
                        historyRecord.BulkUploadStatusHistories.OrderByDescending(x => x.CreatedDateTimeUtc)
                        .FirstOrDefault();
                    if (currentStatus == null)
                    {
                        continue;
                    }
                    var item = new BulkUploadHistoryViewModel
                    {
                        BulkUploadId                  = historyRecord.BulkUploadId,
                        FileName                      = historyRecord.FileName,
                        DownloadUrl                   = historyRecord.FilePath,
                        IsOrganisationUpload          = userContext.IsOrganisation(),
                        ProviderName                  = LoadProviderName(historyRecord),
                        IsAuthorisedToViewAndDownload = userContext.IsOrganisation()
                            ? historyRecord.UserOrganisationId == userContext.ItemId
                            : historyRecord.UserProviderId == userContext.ItemId,
                        UserName            = currentStatus.AspNetUser.Name,
                        UploadedDateTime    = currentStatus.CreatedDateTimeUtc.ToLocalTime(),
                        StatusDescription   = currentStatus.BulkUploadStatu.BulkUploadStatusText,
                        IsDownloadAvailable =
                            !string.IsNullOrEmpty(historyRecord.FilePath) && File.Exists(historyRecord.FilePath),
                        IsUploadSuccessful =
                            currentStatus.BulkUploadStatusId.Equals((int)Constants.BulkUploadStatus.Published),
                    };

                    if (historyRecord.FileContentType != null)
                    {
                        item.FileContentType = (Constants.FileContentType)Enum.Parse(typeof(Constants.FileContentType), historyRecord.FileContentType.ToString());
                    }

                    model.Add(item);
                }
            }
            catch (Exception ex)
            {
                AppGlobal.Log.WriteLog(string.Concat(ex.Message, "-", ex.StackTrace));
            }
        }
        private static BulkUploadOrganisationViewModels LoadOrganisationProviderInfo(IEnumerable <Provider> providers, Constants.BulkUpload_DataType dataType)
        {
            var orgViewModels = new BulkUploadOrganisationViewModels();

            foreach (var provider in providers)
            {
                var orgViewModel = new BulkUploadOrganisationViewModel
                {
                    ProviderName = provider.ProviderName
                };

                if (dataType == Constants.BulkUpload_DataType.CourseData)
                {
                    orgViewModel.CourseType1 = LoadCourseType1(provider);

                    orgViewModel.CourseType2 = LoadCourseType2(provider);

                    orgViewModel.CourseType3 = LoadCourseType3(provider);

                    orgViewModel.OpportunityScopeIn = LoadScopeInCount(provider);

                    orgViewModel.OpportunityScopeOut = LoadScopeOutCount(provider);

                    orgViewModel.OpportunityForOrganisation = LoadOpportunityForOrganisation(provider);

                    orgViewModel.OpportunityForProvider = LoadOpportunityForProvider(provider);
                }
                else //its Apprenticeship data
                {
                    orgViewModel.Apprenticeships   = GetApprenticeshipCount(provider.ProviderId);
                    orgViewModel.DeliveryLocations = GetDeliveryLocationCount(provider.ProviderId);
                }

                orgViewModel.CanOrganisationEditProvider = provider.OrganisationProviders.FirstOrDefault(p => p.CanOrganisationEditProvider && p.IsAccepted && !p.IsRejected) != null;

                orgViewModels.Add(orgViewModel);
            }
            return(orgViewModels);
        }
        private static BulkUploadProviderViewModel LoadProviderInformation(Provider provider, Constants.BulkUpload_DataType dataType)
        {
            if (provider != null)
            {
                BulkUploadProviderViewModel model = new BulkUploadProviderViewModel
                {
                    ProviderId   = provider.ProviderId,
                    ProviderName = provider.ProviderName
                };

                if (dataType == Constants.BulkUpload_DataType.CourseData)
                {
                    model.Courses = provider.Courses.Count(c => c.RecordStatusId.Equals((int)Constants.RecordStatus.Live));
                    if (model.Courses < 1000)
                    {
                        model.Opportunities = GetOpportunityCount(provider.ProviderId);
                    }
                    else
                    {
                        model.Opportunities = -1; // GetOpportunityCount(provider.Courses.Where(c => c.RecordStatusId.Equals((int)Constants.RecordStatus.Live)))
                    }
                }
                else //Apprenticeship Data
                {
                    model.Apprenticeships = GetApprenticeshipCount(provider.ProviderId);
                    //if (model.Apprenticeships < 1000)
                    //{
                    model.DeliveryLocations = GetDeliveryLocationCount(provider.ProviderId);
                    //}
                    //else
                    //{
                    //    model.DeliveryLocations = -1;
                    //}
                }
                return(model);
            }
            return(null);
        }
        public static string GetCsvFileName(this BulkUploadViewModel model, UserContext.UserContextInfo userContext, ProviderPortalEntities db, Constants.BulkUpload_DataType dataType)
        {
            var providerOrOrganisationName = userContext.IsOrganisation()
                           ? db.Organisations.Where(o => o.OrganisationId.Equals(userContext.ItemId.Value)).Select(o => o.OrganisationName).FirstOrDefault()
                           : db.Providers.Where(p => p.ProviderId.Equals(userContext.ItemId.Value)).Select(p => p.ProviderName).FirstOrDefault();

            var dataTypeName = (dataType == Constants.BulkUpload_DataType.CourseData ? "Courses" : "Apprenticeships");

            return(string.Format("{0}_{1}.{2}", providerOrOrganisationName, dataTypeName, Constants.BulkDownloadFileExtension));
        }
        public static byte[] TransformToCsv(this BulkUploadViewModel model, UserContext.UserContextInfo userContext, ProviderPortalEntities db, Constants.BulkUpload_DataType dataType)
        {
            var providers = LoadProviders(userContext, db, true, true);

            return(new EntityToCsvConvertor(providers, userContext, dataType).ToCsv());
        }
        public static void Populate(this BulkUploadViewModel model, UserContext.UserContextInfo userContext, ProviderPortalEntities db, Constants.BulkUpload_DataType dataType)
        {
            var providers = LoadProviders(userContext, db, true, userContext.IsOrganisation());

            model.UserCntxName = userContext.ContextName;

            if (userContext.IsProvider())
            {
                model.ProviderViewModel = LoadProviderInformation(providers.FirstOrDefault(), dataType);
            }
            else if (userContext.IsOrganisation())
            {
                model.OrganisationViewModel = LoadOrganisationProviderInfo(providers, dataType);
            }
        }
Exemplo n.º 7
0
        public static List <int> GetPermittedBulkUploadProviders(ProviderPortalEntities db, UserContext.UserContextInfo userContext, Constants.BulkUpload_DataType dataType)
        {
            var permittedBulkUploadProviders = new List <int>();

            var providerPermission     = (dataType == Constants.BulkUpload_DataType.CourseData ? Permission.PermissionName.CanBulkUploadProviderFiles : Permission.PermissionName.CanBulkUploadProviderApprenticeshipFiles);
            var organisationPermission = (dataType == Constants.BulkUpload_DataType.CourseData ? Permission.PermissionName.CanBulkUploadOrganisationFiles : Permission.PermissionName.CanBulkUploadOrganisationApprenticeshipFiles);

            if (userContext.IsProvider() && Permission.HasPermission(false, true, providerPermission))
            {
                permittedBulkUploadProviders.Add(userContext.ItemId.Value);
            }
            else if (userContext.IsOrganisation() && Permission.HasPermission(false, true, organisationPermission))
            {
                permittedBulkUploadProviders =
                    db.OrganisationProviders.Where(
                        o =>
                        o.OrganisationId.Equals(userContext.ItemId.Value) &&
                        o.CanOrganisationEditProvider &&
                        o.IsAccepted && !o.IsRejected)
                    .Select(o => o.ProviderId).ToList();
            }

            return(permittedBulkUploadProviders);
        }
 public EntityToCsvConvertor(List <Provider> providers, UserContext.UserContextInfo userContext, Constants.BulkUpload_DataType dataType)
 {
     _providers   = providers;
     _userContext = userContext;
     _dataType    = dataType;
 }