Ejemplo n.º 1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="MonthVm"/> class.
 /// </summary>
 /// <param name="dateInfo">
 /// The date info.
 /// </param>
 /// <param name="factory">
 /// The factory.
 /// </param>
 /// <param name="taskMediator">
 /// The task mediator.
 /// </param>
 public MonthVm(
     DateInfoModel dateInfo,
     IDateVmFactory factory,
     IUserTaskMediator taskMediator)
     : base(dateInfo, factory, taskMediator)
 {
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ApplicationVm"/> class.
        /// </summary>
        /// <param name="model">
        /// The base application model.
        /// </param>
        public ApplicationVm(IApplicationModel model)
        {
            this.Model = model;
            DateInfoModel currentDate = new DateInfoModel(DateTime.Now, this.Model.StartDateType);

            this.SelectedCase = new DateCase(this.Model.Factory.Create(currentDate, this.Model.Factory, this.Model.TaskMediator));
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="DateVm"/> class.
 /// </summary>
 /// <param name="dateInfo">
 /// The date info.
 /// </param>
 /// <param name="factory">
 /// The factory.
 /// </param>
 /// <param name="taskMediator">
 /// The task mediator.
 /// </param>
 protected DateVm(
     DateInfoModel dateInfo,
     IDateVmFactory factory,
     IUserTaskMediator taskMediator)
 {
     this.dateInfo     = dateInfo;
     this.taskMediator = taskMediator;
     this.factory      = factory;
     this.UpdateTasks();
 }
Ejemplo n.º 4
0
        /// <summary>
        /// The get or create.
        /// </summary>
        /// <param name="dateInfo">
        /// The date info.
        /// </param>
        /// <returns>
        /// The <see cref="DateVm"/>.
        /// </returns>
        public DateVm GetOrCreate(DateInfoModel dateInfo)
        {
            DateVm result = this.dateVmCollection.FirstOrDefault(dateVm => dateVm.IsDateEqual(dateInfo));

            if (this.dateVmCollection.Count > CacheSize)
            {
                this.dateVmCollection.RemoveRange(0, this.dateVmCollection.Count - CacheSize);
            }

            if (result != null)
            {
                return(result);
            }

            switch (dateInfo.DateType)
            {
            case DateRepresentationType.Year:
            {
                result = new YearVm(dateInfo, this, this.taskMediator);
                break;
            }

            case DateRepresentationType.Month:
            {
                result = new MonthVm(dateInfo, this, this.taskMediator);
                break;
            }

            case DateRepresentationType.Week:
            {
                result = new WeekVm(dateInfo, this, this.taskMediator);
                break;
            }

            case DateRepresentationType.Day:
            {
                result = new DayVm(dateInfo, this, this.taskMediator);
                break;
            }

            case DateRepresentationType.Hour:
            {
                result = new HourVm(dateInfo, this, this.taskMediator);
                break;
            }

            default:
            {
                return(null);
            }
            }

            this.dateVmCollection.Add(result);
            return(result);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// The register child.
        /// </summary>
        /// <param name="childDate">
        /// The child date.
        /// </param>
        protected virtual void RegisterChild(DateInfoModel childDate)
        {
            DateVm child = this.factory.Create(childDate, this.factory, this.taskMediator);

            child.NewVmNeeded += this.OnNewVmNeeded;
            child.TaskAdded   += (sender, task) =>
            {
                this.OnTaskAdded(this, task);
                this.OnTaskAdded(sender, task);
            };
            child.TaskRemoved += (sender, task) =>
            {
                this.OnTaskRemoved(this, task);
                this.OnTaskRemoved(sender, task);
            };
            this.children.Add(child);
            this.OnPropertyChanged("Children");
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Initializes a new instance of the <see cref="TaskVm"/> class.
        /// </summary>
        /// <param name="mediator">
        /// The mediator.
        /// </param>
        /// <param name="factory">
        /// The factory.
        /// </param>
        /// <param name="dateInfo">
        /// The date info.
        /// </param>
        /// <param name="task">
        /// The task.
        /// </param>
        public TaskVm(IUserTaskMediator mediator, IDateVmFactory factory, DateInfoModel dateInfo, UserTaskModel task = null)
        {
            // sync the save possibility
            this.PropertyChanged += (sender, args) =>
            {
                if (args.PropertyName != "CanSave" && args.PropertyName != "NewTask")
                {
                    this.OnPropertyChanged("CanSave");
                }
            };

            this.OldTask = task ?? new UserTaskModel()
            {
                Date    = DateTime.Now,
                EndDate = DateTime.Now
            };

            this.taskMediator = mediator;
            this.factory      = factory;
            this.dateInfo     = dateInfo;
            this.NewTask      = (UserTaskModel)this.OldTask.Clone();
        }
Ejemplo n.º 7
0
 /// <summary>
 /// The is date equal. Returns "true" if the Date property of current instance is equal to the date parameter
 /// </summary>
 /// <param name="date">
 /// The date.
 /// </param>
 /// <returns>
 /// The <see cref="bool"/>.
 /// </returns>
 public virtual bool IsDateEqual(DateInfoModel date)
 {
     return(this.DateInfo.DateType == date.DateType && this.IsDateEqual(date.Date));
 }
Ejemplo n.º 8
0
 /// <summary>
 /// The create.
 /// </summary>
 /// <param name="dateInfo">
 /// The date info.
 /// </param>
 /// <param name="factory">
 /// The factory.
 /// </param>
 /// <param name="mediator">
 /// The task mediator.
 /// </param>
 /// <returns>
 /// The <see cref="DateVm"/>.
 /// </returns>
 public DateVm Create(DateInfoModel dateInfo, IDateVmFactory factory, IUserTaskMediator mediator)
 {
     return(this.GetOrCreate(dateInfo));
 }