コード例 #1
0
        public static PermissionResult CanUpdateHeaderDate(MainContext context, AgendaHeader header, IEnumerable <AgendaHeader> headers, DateTime newDate)
        {
            if (header == null)
            {
                throw new ArgumentNullException(nameof(header));
            }
            if (headers == null)
            {
                throw new ArgumentNullException(nameof(headers));
            }

            // TODO : !!!
            return(PermissionResult.Allow);
        }
コード例 #2
0
        public static PermissionResult CanAddHeader(MainContext context, AgendaHeader header, IEnumerable <AgendaHeader> headers)
        {
            if (header == null)
            {
                throw new ArgumentNullException(nameof(header));
            }
            if (headers == null)
            {
                throw new ArgumentNullException(nameof(headers));
            }

            var result = Validator.ValidateNotEmpty(header.Name, @"HeaderNameIsRequired");

            if (result != PermissionResult.Allow)
            {
                return(result);
            }
            var name = (header.Name ?? string.Empty).Trim();

            foreach (var h in headers)
            {
                if (h.Name.Equals(name, StringComparison.OrdinalIgnoreCase))
                {
                    return(PermissionResult.Deny(@"HeaderWithTheSameNameAlreadyExists"));
                }
            }
            var values = GetData(context);

            //context.Log(nameof(IsAgendaHeaderExists), LogLevel.Info);
            if (IsAgendaHeaderExists(values, name))
            {
                return(PermissionResult.Deny(@"HeaderWithTheSameNameAlreadyExists"));
            }
            var date = header.DateTime.Date;

            //context.Log(nameof(IsDateExists), LogLevel.Info);
            if (IsDateExists(values, date))
            {
                return(PermissionResult.Deny(@"HeaderWithTheSameDateAlreadyExists"));
            }
            // TODO : Parameter ???
            if (date < DateTime.Today.AddDays(-30))
            {
                return(PermissionResult.Confirm(@"HeaderDateConfirmTooOld"));
            }
            return(PermissionResult.Allow);
        }
コード例 #3
0
        private async void AddHeader()
        {
            var context = nameof(AgendaHeaderScreenViewModel);
            var feature = new Feature(context, nameof(AddHeader));

            try
            {
                this.MainContext.Save(feature);

                // Create model
                var header = new AgendaHeader(0, this.HeaderName)
                {
                    DateTime = HeaderDateTime
                };

                var result = this.CanAddHeader(this.MainContext, header, this.AgendaHeaders.Select(v => v.AgendaHeader));
                if (result.Type != PermissionType.Allow)
                {
                    //var message = this.MainContext.LocalizationManager.Get(new LocalizationKey(context, result.LocalizationKeyName));
                    //var confirmation = await this.MainContext.ModalDialog.ShowAsync(message, feature, result.Type);
                    //if (confirmation != DialogResult.Accept)
                    //{
                    //	return;
                    //}
                }

                // Create view model
                var viewModel = new AgendaHeaderViewModel(header);

                // Insert into db
                using (var ctx = this.MainContext.CreateDataQueryContext())
                {
                    //this.DataProvider.Insert(ctx, viewModel.Model);
                    ctx.Complete();
                }

                // Insert to view models
                this.AgendaHeaders.Add(viewModel);

                // Refresh the screen
                this.DisplayData();
            }
            catch (Exception ex)
            {
                this.MainContext.Save(feature, ex);
            }
        }
コード例 #4
0
        public static PermissionResult CanUpdateHeaderAddress(MainContext context, AgendaHeader header, IEnumerable <AgendaHeader> headers, string address)
        {
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }
            if (header == null)
            {
                throw new ArgumentNullException(nameof(header));
            }
            if (headers == null)
            {
                throw new ArgumentNullException(nameof(headers));
            }

            throw new NotImplementedException();
        }
コード例 #5
0
        public AgendaHeaderViewModel(AgendaHeader agendaHeader)
        {
            if (agendaHeader == null)
            {
                throw new ArgumentNullException(nameof(agendaHeader));
            }

            this.AgendaHeader = agendaHeader;
            foreach (var detail in agendaHeader.Details)
            {
                this.Details.Add(new AgendaDetailViewModel(detail));
            }

            this.Details.CollectionChanged += (sender, args) =>
            {
                agendaHeader.Details.Clear();
                agendaHeader.Details.AddRange(this.Details.Select(v => v.AgendaDetail));
            };
        }