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); } }
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; }