public override void Reset()
        {
            base.Reset();

            if (InstalledDatasets != null && InstalledDatasets.Any())
            {
                ListExtensions.ForEach(InstalledDatasets, id =>
                {
                    if (id.WebsiteDatasets != null && id.WebsiteDatasets.Any())
                    {
                        id.WebsiteDatasets.Clear();
                    }

                    // RaisePropertyChanged(() => id.WebsiteDatasets);
                });

                //InstalledDatasets.Clear();
                RaisePropertyChanged(() => InstalledDatasets);
            }

            //if (ManageViewModel.WebsiteViewModel != null && ManageViewModel.WebsiteViewModel.Website != null)
            //{
            //    ManageViewModel.WebsiteViewModel.Website.Datasets = new List<WebsiteDataset>();
            //    RaisePropertyChanged(() => CurrentWebsite.Datasets);
            //    RaisePropertyChanged(() => ManageViewModel.WebsiteViewModel.Website.Datasets);
            //}
        }
示例#2
0
        //
        // GET: Display a list ofstreamable  media assets
        public async Task <ActionResult> Index()
        {
            //Initializing a model
            MediaLibraryModel model = new MediaLibraryModel();

            model.VideoList = new List <Tuple <IAsset, ILocator, Uri> >();
            model.IsCurrentUserMemberOfAdminGroup = IsAdminUser();
            model.JwtToken = GetJwtSecurityToken();
            if (model.JwtToken == null)
            {
                return(View(model));
            }

            try
            {
                CloudMediaContext cloudMediaContext = Factory.GetCloudMediaContext();

                IStreamingEndpoint streamingEndPoint = cloudMediaContext.StreamingEndpoints.FirstOrDefault();
                model.StreamingEndPoint = streamingEndPoint;

                // Find 30-day read-only access policy.
                string streamingPolicy = "30d Streaming policy";
                var    accessPolicy    = cloudMediaContext.AccessPolicies.Where(c => c.Name == streamingPolicy).FirstOrDefault();

                //Locate all files with smooth streaming Manifest
                ListExtensions.ForEach(cloudMediaContext.Files.Where(c => c.Name.EndsWith(".ism")), file =>
                {
                    //skip all assets where DynamicEncryption can't be applied
                    if (file.Asset.Options != AssetCreationOptions.None)
                    {
                        return;
                    }

                    ILocator originLocator = null;
                    //Display only assets which associated with streaming 30 day policy
                    if (accessPolicy != null)
                    {
                        originLocator =
                            file.Asset.Locators.Where(
                                c => c.AccessPolicyId == accessPolicy.Id && c.Type == LocatorType.OnDemandOrigin)
                            .FirstOrDefault();
                    }
                    //If no policy has been found we are storing nulls in a model
                    Tuple <IAsset, ILocator, Uri> item = new Tuple <IAsset, ILocator, Uri>(file.Asset, originLocator, originLocator != null ? new Uri(originLocator.Path + file.Name) : null);
                    model.VideoList.Add(item);
                });

                return(View(model));
            }
            catch (Exception ex)
            {
                ViewBag.ErrorMessage = ex.Message;
                return(View(model));
            }
        }
        /// <summary>
        /// Gets the installed datasets.
        /// </summary>
        /// <returns></returns>
        private ObservableCollection <DataTypeModel> GetInstalledDatasets()
        {
            ObservableCollection <DataTypeModel> data = new ObservableCollection <DataTypeModel>();

            using (var session = SessionProvider.SessionFactory.OpenSession())
            {
                //this.Service.CleanUnFinishedDatasets();

                ListExtensions.ForEach(TargetLookup, target =>
                {
                    var types = new List <int> {
                        target.Value.Id
                    };

                    var crit = PredicateBuilder.True <Dataset>();
                    crit     = types.Aggregate(crit, (current, typeId) => current.And(item => item.ContentType.Id == typeId));

                    var contentItems = session.Query <Dataset>().Where(crit)
                                       .ToFuture()
                                       .Select(d => new Dataset
                    {
                        Id                         = d.Id,
                        IsFinished                 = d.IsFinished,
                        Name                       = d.Name,
                        ReportingQuarter           = d.ReportingQuarter,
                        ReportingYear              = d.ReportingYear,
                        DRGMDCMappingStatus        = d.DRGMDCMappingStatus,
                        DRGMDCMappingStatusMessage = d.DRGMDCMappingStatusMessage,
                        ContentType                = d.ContentType,
                        VersionYear                = d.VersionYear,
                        VersionMonth               = d.VersionMonth,
                        DateImported               = d.DateImported,
                        ProviderStates             = d.ProviderStates,
                        TotalRows                  = d.TotalRows,
                        RowsImported               = d.RowsImported
                    })
                                       .ToList();

                    var items = contentItems.Select(item => new DataTypeDetailsViewModel(item)).ToList();
                    var dtm   = new DataTypeModel(target.Value)
                    {
                        RecordsList = new ObservableCollection <DataTypeDetailsViewModel>(items)
                    };

                    data.Add(dtm);
                });
            }
            return(data.OrderBy(ct => ct.DisplayOrder).ToObservableCollection());
        }
        /// <summary>
        /// Executes the load.
        /// </summary>
        /// <param name="session">The session.</param>
        protected override void ExecLoad(ISession session)
        {
            TotalCount  = 0;
            CurrentPage = 0;
            PageSize    = INITIAL_LOAD_COUNT;

            var statesList = ConfigurationService.HospitalRegion.DefaultStates.OfType <string>().ToList();

            ListExtensions.ForEach(statesList, x => TotalCount += session.Query <db.Physician>().Count(GetWhereClause(x)));

            Fetch(session, statesList);
            CollectionItems.MoveCurrentToFirst();
            IsLastItemFetched = PageSize * CurrentPage >= TotalCount - INITIAL_LOAD_COUNT;
            PageSize          = 5;
        }
示例#5
0
        /// <summary>
        /// Applies the mapping hints.
        /// </summary>
        /// <param name="element">The element.</param>
        /// <param name="fieldNames">The field names.</param>
        public static void ApplyMappingHints(this Element element, params string[] fieldNames)
        {
            if (fieldNames != null && fieldNames.Any())
            {
                ListExtensions.ForEach(fieldNames, fn => fn = fn.ToUpper());
            }

            element.MappingHints = fieldNames;

            using (var sess = _provider.SessionFactory.OpenStatelessSession())
            {
                using (var trans = sess.BeginTransaction())
                {
                    sess.Update(element);
                    trans.Commit();
                }
            }
        }
        public override void Continue()
        {
            ProcessWebsitesAndDatasets();
            // update available website measures
            var datasetNames     = CurrentWebsite.Datasets.Select(d => d.Dataset.ContentType.Name).ToList();
            var availableMeasurs = WebsiteDataService.GetMeasureViewModels(m => m.IsOverride == false && datasetNames.Contains(m.Owner.Name)).ToList();

            CurrentWebsite.Measures = CurrentWebsite.Measures.RemoveNullValues().ToList();
            for (var i = CurrentWebsite.Measures.Count - 1; i >= 0; i--)
            {
                var item = CurrentWebsite.Measures[i];
                if (availableMeasurs.All(m => m.Measure.MeasureCode != item.ReportMeasure.MeasureCode))
                {
                    CurrentWebsite.Measures.Remove(item);
                }
            }
            foreach (var item in availableMeasurs)
            {
                if (CurrentWebsite.Measures.All(m => m.ReportMeasure.MeasureCode != item.Measure.MeasureCode))
                {
                    CurrentWebsite.Measures.Add(new WebsiteMeasure()
                    {
                        OriginalMeasure = item.Measure, OverrideMeasure = null, IsSelected = true
                    });
                }
            }

            ListExtensions.ForEach(CurrentWebsite.Measures, wm =>
            {
                if (!wm.IsPersisted && wm.ReportMeasure.Name.StartsWith("IP") &&
                    (wm.ReportMeasure.MeasureTitle.Clinical.ContainsIgnoreCase("median") ||
                     wm.ReportMeasure.MeasureTitle.Policy.ContainsIgnoreCase("median")))
                {
                    wm.IsSelected = false;
                }
            });

            //EventAggregator.GetEvent<UpdateWebsiteTabContextEvent>().Publish(new UpdateTabContextEventArgs()
            //{
            //    WebsiteViewModel = base.ManageViewModel.WebsiteViewModel,
            //    ExecuteViewModel = WebsiteTabViewModels.Datasets
            //});
        }
示例#7
0
        public async Task <ActionResult> CleanAllPermissions()
        {
            var cloudMediaContext = Factory.GetCloudMediaContext();

            //Cleaning all associations with Asset
            ListExtensions.ForEach(cloudMediaContext.Files.Where(c => c.Name.EndsWith(".ism")), file => CleanAssetAccessEntities(cloudMediaContext, file.Asset));

            //Cleaning all access policies
            try
            {
                var policyDeleteTasks = cloudMediaContext.AccessPolicies.ToList().Select(policy => policy.DeleteAsync()).ToArray();
                Task.WaitAll(policyDeleteTasks);
            }
            catch (AggregateException)
            {
            }

            try
            {
                var keyAythPolicicesTasks = cloudMediaContext.ContentKeyAuthorizationPolicies.ToList().Select(c => c.DeleteAsync()).ToArray();
                Task.WaitAll(keyAythPolicicesTasks);
            }
            catch (AggregateException)
            {
            }

            try
            {
                var optionPolicyOptions = cloudMediaContext.ContentKeyAuthorizationPolicyOptions.ToList().Select(c => c.DeleteAsync()).ToArray();
                Task.WaitAll(optionPolicyOptions);
            }
            catch (AggregateException)
            {
            }

            return(RedirectToAction("Index"));
        }
示例#8
0
        /// <summary>
        /// Updates the website domain model properties from website details view model data properties.
        /// </summary>
        private void UpdateModelFromProperties()
        {
            //ManageViewModel.WebsiteViewModel.Website.Name = Name;
            //ManageViewModel.WebsiteViewModel.Website.Description = Description;
            //ManageViewModel.WebsiteViewModel.Website.ReportedYear = SelectedYear;
            //ManageViewModel.WebsiteViewModel.Website.ReportedQuarter = SelectedQuarter == -1 ? null : SelectedQuarter;
            //ManageViewModel.WebsiteViewModel.Website.Audience = (!string.IsNullOrWhiteSpace(SelectedAudience))
            //                                        ? (Audience)Enum.Parse(typeof(Audience), SelectedAudience)
            //                                        : Audience.None;

            if (SelectedRegionContext != null && CurrentWebsite != null)
            {
                CurrentWebsite.RegionTypeContext = SelectedRegionContext.Value.ToString();
            }

            if (SelectedStateItems != null && StateContextItems.Any() && CurrentWebsite != null)
            {
                CurrentWebsite.StateContext.Clear();

                ListExtensions.ForEach(SelectedStateItems, sli => CurrentWebsite.StateContext.Add(sli.Value.ToString()));

                CurrentWebsite.SelectedReportingStates = CurrentWebsite.StateContext.ToList();
            }
        }
示例#9
0
 protected override void HandleOnNavigatedTo(NavigationEventArgs e)
 {
     base.HandleOnNavigatedTo(e);
     this._fromPhotoPicker = false;
     this._isForwardNav    = e.NavigationMode == 0;
     if (ParametersRepository.Contains("FromPhotoPicker"))
     {
         this._fromPhotoPicker = (bool)ParametersRepository.GetParameterForIdAndReset("FromPhotoPicker");
     }
     if (!this._isInitialized)
     {
         this._adminLevel = int.Parse(((Page)this).NavigationContext.QueryString["AdminLevel"]);
         bool isPublicPage   = ((Page)this).NavigationContext.QueryString["IsPublicPage"] == bool.TrueString;
         bool isNewTopicMode = ((Page)this).NavigationContext.QueryString["IsNewTopicMode"] == bool.TrueString;
         this._isFromWallPostPage = ((Page)this).NavigationContext.QueryString["FromWallPostPage"] == bool.TrueString;
         WallPostViewModel.Mode mode;
         // ISSUE: explicit reference operation
         // ISSUE: cast to a reference type
         Enum.TryParse <WallPostViewModel.Mode>(((Page)this).NavigationContext.QueryString["Mode"], out mode);
         WallPost parameterForIdAndReset1 = ParametersRepository.GetParameterForIdAndReset("PublishWallPost") as WallPost;
         WallPost parameterForIdAndReset2 = ParametersRepository.GetParameterForIdAndReset("EditWallPost") as WallPost;
         Comment  parameterForIdAndReset3 = ParametersRepository.GetParameterForIdAndReset("EditWallComment") as Comment;
         Comment  parameterForIdAndReset4 = ParametersRepository.GetParameterForIdAndReset("EditPhotoComment") as Comment;
         Comment  parameterForIdAndReset5 = ParametersRepository.GetParameterForIdAndReset("EditVideoComment") as Comment;
         Comment  parameterForIdAndReset6 = ParametersRepository.GetParameterForIdAndReset("EditProductComment") as Comment;
         Comment  parameterForIdAndReset7 = ParametersRepository.GetParameterForIdAndReset("EditDiscussionComment") as Comment;
         Dictionary <long, long> parameterForIdAndReset8  = ParametersRepository.GetParameterForIdAndReset("CidToAuthorIdDict") as Dictionary <long, long>;
         WallRepostInfo          parameterForIdAndReset9  = ParametersRepository.GetParameterForIdAndReset("WallRepostInfo") as WallRepostInfo;
         WallPostViewModel       parameterForIdAndReset10 = ParametersRepository.GetParameterForIdAndReset("NewCommentVM") as WallPostViewModel;
         this._shareContentDataProvider = ShareContentDataProviderManager.RetrieveDataProvider();
         if (this._shareContentDataProvider is ShareExternalContentDataProvider)
         {
             ((Page)this).NavigationService.ClearBackStack();
             this.ucHeader.HideSandwitchButton = true;
             this.SuppressMenu = true;
         }
         WallPostViewModel vm;
         if (parameterForIdAndReset1 != null)
         {
             vm = new WallPostViewModel(parameterForIdAndReset1, this._adminLevel, null)
             {
                 WMMode = WallPostViewModel.Mode.PublishWallPost
             }
         }
         ;
         else if (parameterForIdAndReset2 != null)
         {
             vm = new WallPostViewModel(parameterForIdAndReset2, this._adminLevel, parameterForIdAndReset9)
             {
                 WMMode = WallPostViewModel.Mode.EditWallPost
             };
             if (vm.WallRepostInfo != null)
             {
                 RepostHeaderUC repostHeaderUc1 = new RepostHeaderUC();
                 Thickness      thickness       = new Thickness(0.0, 14.0, 0.0, 14.0);
                 ((FrameworkElement)repostHeaderUc1).Margin = thickness;
                 RepostHeaderUC repostHeaderUc2 = repostHeaderUc1;
                 repostHeaderUc2.Configure(vm.WallRepostInfo, null);
                 this.wallRepostContainer.Child = ((UIElement)repostHeaderUc2);
             }
         }
         else
         {
             vm = parameterForIdAndReset3 == null ? (parameterForIdAndReset4 == null ? (parameterForIdAndReset5 == null ? (parameterForIdAndReset6 == null ? (parameterForIdAndReset7 == null ? (parameterForIdAndReset10 == null ? new WallPostViewModel(this.CommonParameters.UserOrGroupId, this.CommonParameters.IsGroup, this._adminLevel, isPublicPage, isNewTopicMode) : parameterForIdAndReset10) : WallPostViewModel.CreateEditDiscussionCommentVM(parameterForIdAndReset7, parameterForIdAndReset8)) : WallPostViewModel.CreateEditProductCommentVM(parameterForIdAndReset6)) : WallPostViewModel.CreateEditVideoCommentVM(parameterForIdAndReset5)) : WallPostViewModel.CreateEditPhotoCommentVM(parameterForIdAndReset4)) : WallPostViewModel.CreateEditWallCommentVM(parameterForIdAndReset3);
         }
         vm.IsOnPostPage = true;
         vm.WMMode       = mode;
         if (!this._fromPhotoPicker && (!e.IsNavigationInitiator || e.NavigationMode != NavigationMode.New || (mode == WallPostViewModel.Mode.NewTopic || mode == WallPostViewModel.Mode.NewWallPost)))
         {
             WallPostVMCacheManager.TryDeserializeVM(vm);
         }
         vm.PropertyChanged += new PropertyChangedEventHandler(this.vm_PropertyChanged);
         base.DataContext    = vm;
         this._isInitialized = true;
     }
     if (this.HandleInputParams(e))
     {
         return;
     }
     this.UpdateViewState();
     ListExtensions.ForEach <IOutboundAttachment>(this.WallPostVM.OutboundAttachments, (Action <IOutboundAttachment>)(a => a.SetRetryFlag()));
     if (!e.IsNavigationInitiator || e.NavigationMode != NavigationMode.New)
     {
         return;
     }
     if (this.WallPostVM.IsInNewWallPostMode || this.WallPostVM.EditWallRepost)
     {
         this.FocusTextBox();
     }
     else
     {
         if (!this.WallPostVM.IsInNewTopicMode)
         {
             return;
         }
         this.FocusTitleTextBox();
     }
 }
        /// <summary>
        /// Deletes the item.
        /// </summary>
        /// <param name="entry">The entry.</param>
        /// <param name="showDeletePrompt">if set to <c>true</c> [show delete prompt].</param>
        private void DeleteItem(Dataset entry, bool showDeletePrompt = true)
        {
            try
            {
                if (TargetLookup == null || !TargetLookup.Any())
                {
                    return;
                }

                if (TargetLookup[entry.ContentType.Name] == null)
                {
                    return;
                }

                if (!TargetLookup[entry.ContentType.Name].IsCustom && string.IsNullOrEmpty(TargetLookup[entry.ContentType.Name].ClrType))
                {
                    return;
                }

                if (showDeletePrompt)
                {
                    var attachedWebsites = Service.GetWebsitesForDataset(entry.Id);
                    if (attachedWebsites.Any())
                    {
                        string websiteNames   = string.Join(",", attachedWebsites);
                        var    warningMessage = string.Format("Unable to delete dataset \"{0}\" because it is associated with the following websites:", entry.Name);
                        warningMessage += string.Format("{0}{0}Associated Websites: {1}", Environment.NewLine, websiteNames);

                        MessageBox.Show(warningMessage, "Dataset Deletion Warning", MessageBoxButton.OK);
                        return;
                    }

                    //  Show blanket warning against dataset deletion.  But only show warning if this Dataset is Finished.
                    if (entry.IsFinished)
                    {
                        var warningMessage = string.Format("Dataset \"{0}\" will be deleted.  Are you sure you want to delete this data set?", entry.Name);
                        var result         = MessageBox.Show(warningMessage, "Dataset Deletion Warning", MessageBoxButton.YesNo);

                        if (result == MessageBoxResult.No ||
                            result == MessageBoxResult.Cancel ||
                            result == MessageBoxResult.None)
                        {
                            return;
                        }
                    }
                }

                if (DataTypesList == null)
                {
                    return;
                }

                foreach (var dataTypeModel in DataTypesList.Where(dataTypeModel => dataTypeModel.RecordsList.Any(ds => ds.Entry.Id == entry.Id)).ToList())
                {
                    dataTypeModel.RecordsList.ToList().RemoveAll(ds => ds.Entry.Id != entry.Id);
                }

                if (SelectedDataType != null)
                {
                    var item = SelectedDataType.RecordsList.FirstOrDefault(model => model.Entry.Id == entry.Id);
                    if (item != null)
                    {
                        SelectedDataType.RecordsList.Remove(item);
                    }
                }

                using (var session = SessionProvider.SessionFactory.OpenSession())
                {
                    using (var trans = session.BeginTransaction())
                    {
                        session.Evict(entry);

                        var target = TargetLookup[entry.ContentType.Name];

                        #region Delete queries
                        string targetDeleteQuery;

                        var tableName = target.IsCustom ? entry.ContentType.DbSchemaName : entry.ContentType.ClrType != null?Type.GetType(entry.ContentType.ClrType).EntityTableName() : string.Empty;

                        if (string.IsNullOrEmpty(tableName))
                        {
                            return;
                        }

                        //Disable Dataset Constraint
                        //var disableConstraint = string.Format("ALTER TABLE  {0} NOCHECK CONSTRAINT FK_TARGETS_{1}_DATASETS", tableName, tableName.Replace("Targets_", ""));
                        var disableConstraint = string.Format("ALTER TABLE  {0} NOCHECK CONSTRAINT ALL;", tableName /*, tableName.Replace("Targets_", "")*/);
                        session.CreateSQLQuery(disableConstraint)
                        .SetTimeout(25000)
                        .ExecuteUpdate();


                        // Delete Transactional record
                        var transactionDelete = string.Format("delete from DatasetTransactionRecord ct where ct.Dataset.Id = {0}", entry.Id);
                        session.CreateQuery(transactionDelete)
                        .SetTimeout(25000)
                        .ExecuteUpdate();

                        //Delete websites with no website_id but have reference to this dataset being deleted
                        var orphanWesbite = string.Format("delete from Websites_WebsiteDatasets where Website_Id IS NULL and Dataset_Id = {0}", entry.Id);
                        session.CreateSQLQuery(orphanWesbite)
                        .SetTimeout(25000)
                        .ExecuteUpdate();

                        // finally delete content item record.
                        var importDelete = string.Format("delete from Dataset c where c.Id = {0}", entry.Id);
                        session.CreateQuery(importDelete)
                        .SetTimeout(25000)
                        .ExecuteUpdate();

                        #endregion

                        if (TargetDeletionVisitors != null)
                        {
                            TargetDeletionVisitors = TargetDeletionVisitors.OrderBy(v => v.Order).ToList();

                            var options = new VisitorOptions()
                            {
                                DataProvider = this.SessionProvider,
                                Logger       = this.Logger
                            };
                            var factory = new TaskFactory(new MonahrqTaskScheduler(2));
                            var token   = new CancellationTokenSource();

                            Dispatcher.CurrentDispatcher.BeginInvoke(DispatcherPriority.Background,
                                                                     new Action(() => ListExtensions.ForEach(TargetDeletionVisitors, visitor => factory.StartNew(() => entry.Accept(visitor, options), token.Token))));
                        }

                        trans.Commit();
                    }
                }
            }
            catch (Exception ex)
            {
                Events.GetEvent <ErrorNotificationEvent>().Publish(ex);
            }
        }
示例#11
0
 private void SetResetParent(bool set, IEnumerable <IVirtualizable> items)
 {
     ListExtensions.ForEach <IVirtualizable>(items, (Action <IVirtualizable>)(item => this.SetResetParent(set, item)));
 }
        /// <summary>
        /// Called when [imports satisfied].
        /// </summary>
        public override void OnImportsSatisfied()
        {
            base.OnImportsSatisfied();

            CurrentMappingBasis = ConfigurationService.HospitalRegion;
            ReferenceExists     = !IsInitialMapping;

            AddStateToContextCommand      = new DelegateCommand(OnAddState, CanAddState);
            RemoveStateFromContextCommand = new DelegateCommand <SelectListItem>(OnRemoveStateCommand, CanRemoveState);
            ApplyContextCommand           = new DelegateCommand(OnApplyContextCommand, CanApplyContextCommand);
            NavigateBackCommand           = new DelegateCommand(OnNavigateBackCommand);
            SelectedStates = CollectionHelper.EmptyListCollectionView <SelectListItem>();
            var crit = PredicateBuilder.True <State>();

            ListExtensions.ForEach(CurrentMappingBasis.DefaultStates.OfType <string>().ToList(),
                                   ab => crit = crit.And(st => st.Abbreviation != ab));

            var availStates = new List <SelectListItem>();

            availStates.Add(SELECT_STATE);

            var allStates = HospitalRegistryService.GetStates(null).ToList();

            availStates.AddRange(allStates.AsQueryable()
                                 .Where(crit)
                                 .Select(state => new SelectListItem {
                Model = state, Text = state.Abbreviation, Value = state.Abbreviation
            })
                                 //.Concat(new[] { SELECT_STATE })
                                 .OrderBy(item => item.Text).ToList());

            AvailableStates = availStates.ToListCollectionView();

            crit = PredicateBuilder.False <State>();

            ListExtensions.ForEach(CurrentMappingBasis.DefaultStates
                                   .OfType <string>(), ab => crit = crit.Or(st => st.Abbreviation == ab));

            var selectedStates = allStates.AsQueryable().Where(crit).Select(st => new SelectListItem {
                Text = st.Abbreviation, Value = st.Abbreviation, Model = st
            }).ToList();

            // Setting the Selected Reporting States for Global use.
            //if (!MonahrqContext.ReportingStatesContext.Any(s => selectedStates.Any(s1 => s.In(s1)) ))
            //    MonahrqContext.ReportingStatesContext.AddRange(selectedStates);
            MonahrqContext.ReportingStatesContext.AddRange(selectedStates.Select(s => s.Text).ToList());

            SelectedStates = selectedStates.ToListCollectionView();
            SelectedStates.CommitNew();
            AvailableStates.CommitEdit();
            AvailableStates.MoveCurrentToFirst();

            SelectedState = SELECT_STATE;

            // Regions for combo box, Object type return "SELECT" on display, and NULL on return using
            RegionTypes = (new[] {
                typeof(object),
                typeof(CustomRegion),
                typeof(HealthReferralRegion),
                typeof(HospitalServiceArea)
            }).ToListCollectionView();

            SelectedRegionType = CurrentMappingBasis.SelectedRegionType;
        }
示例#13
0
        private void LoadInformation()
        {
            using (var ctx = new ApplicationDbContext())
            {
                #region commented

                //var minDate = DateTime.MinValue;
                //var maxDate = DateTime.MaxValue;

                //DateTime tempDateTime;

                //if (DateTime.TryParseExact(txtStartDate.Text.Trim(), "dd/MM/yyyy", null, DateTimeStyles.None,
                //    out tempDateTime))
                //{
                //    minDate = tempDateTime;
                //}

                //if (DateTime.TryParseExact(txtEndDate.Text.Trim(), "dd/MM/yyyy", null, DateTimeStyles.None,
                //    out tempDateTime))
                //{
                //    maxDate = tempDateTime;
                //}


                //// To make the endDate as the last minute of the day so that x < endDate comparision can work correctly.
                //if (maxDate.Date != DateTime.MaxValue.Date)
                //{
                //    maxDate = maxDate.AddDays(1).AddMilliseconds(-1);
                //}

                #endregion

                var transactions = ctx.Transactions.ToList();


                var transactionsExpenses = transactions.Where(
                    x =>
                    x.TransactionLegs.Single(y => y.TransactionLegType == TransactionLegType.Debit)
                    .Account.AccountCategory == AccountCategory.Nominal).ToList();


                var reversals = transactions.Where(
                    x =>
                    x.TransactionLegs.Single(y => y.TransactionLegType == TransactionLegType.Credit)
                    .Account.AccountCategory == AccountCategory.Nominal).ToList();

                reversals.ForEach(tran => ListExtensions.ForEach(tran.TransactionLegs, leg => leg.Amount *= -1));


                transactions = transactionsExpenses.Union(reversals).OrderBy(x => x.Timestamp).ToList();


                var finalData2 = transactions.Select(x => new
                {
                    TransactionDate = x.Timestamp,
                    DebitAccount    =
                        x.TransactionLegs.Single(y => y.TransactionLegType == TransactionLegType.Debit)
                        .Account.AccountName,
                    CreditAccount =
                        x.TransactionLegs.Single(y => y.TransactionLegType == TransactionLegType.Credit)
                        .Account.AccountName,
                    Amount = x.TransactionLegs.First().Amount,
                    TransactionDescription = x.Description
                })
                                 .GroupBy(g => g.TransactionDate.Date)
                                 .Select(q => new { Date = q.Key.Date, Amount = q.Sum(tr => tr.Amount) })
                                 .OrderBy(item => item.Date);


                var dayExpenses = (from dynamic item in finalData2 select new DayExpense(item.Date, item.Amount)).ToList();

                Session["_ExpensesSummary_ExpensesChart"] = dayExpenses;

                //var chartType = (SeriesChartType)Enum.Parse(typeof(SeriesChartType), ddlChartType.SelectedValue);

                Chart1.Series.Clear();
                Chart1.Series.Add(new Series()
                {
                    ChartType = SeriesChartType.Column,
                });

                Chart1.Series[0]["PixelPointWidth"] = "15";
                Chart1.Series[0].XValueType         = ChartValueType.Date;

                Chart1.ChartAreas[0].AxisX.Interval     = 1;
                Chart1.ChartAreas[0].AxisX.IntervalType = DateTimeIntervalType.Days;

                Chart1.ChartAreas[0].AxisX.MajorGrid = new Grid()
                {
                    Enabled = false
                };

                Chart1.Series[0].XValueType = ChartValueType.DateTime;
                var minDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1).AddSeconds(-1);
                var maxDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1).AddMonths(1).AddSeconds(-1); // or DateTime.Now;
                Chart1.ChartAreas[0].AxisX.Minimum = minDate.ToOADate();
                Chart1.ChartAreas[0].AxisX.Maximum = maxDate.ToOADate();


                Chart1.ChartAreas[0].AxisY.Interval = 10;
                Chart1.ChartAreas[0].AxisY.MajorGrid.LineDashStyle = ChartDashStyle.Dot;
                Chart1.ChartAreas[0].AxisY.MajorGrid.LineColor     = Color.DarkGray;


                foreach (var item in finalData2)
                {
                    Chart1.Series[0].Points.AddXY(item.Date, item.Amount);
                }
            }
        }