コード例 #1
0
ファイル: Listing.cs プロジェクト: blitzik/ListingsWPF
        public ListingItem ReplaceItem(int day, string locality, Time start, Time end, Time lunchStart, Time lunchEnd, Time otherHours)
        {
            if (!_items.ContainsKey(day))
            {
                return(AddItem(day, locality, start, end, lunchStart, lunchEnd, otherHours));
            }

            ListingItem        oldItem = GetItemByDay(day);
            ReplaceItemHandler handler = OnReplacedListingItem;

            if (handler != null)
            {
                handler(this, new ListingItemArgs(oldItem));
            }

            ListingItem newItem = new ListingItem(this, day, locality, start, end, lunchStart, lunchEnd, otherHours);

            WorkedHours      += newItem.TimeSetting.WorkedHours - oldItem.TimeSetting.WorkedHours;
            LunchHours       += newItem.TimeSetting.LunchHours - oldItem.TimeSetting.LunchHours;
            OtherHours       += newItem.TimeSetting.OtherHours - oldItem.TimeSetting.OtherHours;
            TotalWorkedHours += newItem.TimeSetting.TotalWorkedHours - oldItem.TimeSetting.TotalWorkedHours;

            _items[day] = newItem;

            Localities.Add(locality);

            return(newItem);
        }
コード例 #2
0
        public DayItem(Listing listing, int day)
        {
            _listing = listing;
            _year    = listing.Year;
            _month   = listing.Month;
            _day     = day;
            _date    = new DateTime(_year, _month, day);
            _week    = PrepareWeek(_year, _month, _day);

            ListingItem item = listing.GetItemByDay(day);

            if (item != null)
            {
                _listingItem = item;
                Locality     = item.Locality;
                _timeSetting = item.TimeSetting;
            }
        }
コード例 #3
0
ファイル: Listing.cs プロジェクト: blitzik/ListingsWPF
        public ListingItem AddItem(int day, string locality, Time start, Time end, Time lunchStart, Time lunchEnd, Time otherHours)
        {
            if (_items.ContainsKey(day))
            {
                throw new ListingItemAlreadyExistsException();
            }

            ListingItem newItem = new ListingItem(this, day, locality, start, end, lunchStart, lunchEnd, otherHours);

            _items.Add(day, newItem);
            WorkedDays++;
            WorkedHours      += newItem.TimeSetting.WorkedHours;
            LunchHours       += newItem.TimeSetting.LunchHours;
            OtherHours       += newItem.TimeSetting.OtherHours;
            TotalWorkedHours += newItem.TimeSetting.TotalWorkedHours;

            Localities.Add(locality);

            return(newItem);
        }
コード例 #4
0
        public void Update(ListingItem item)
        {
            ArgumentException e = new ArgumentException();

            if (!Listing.ContainsItem(item))
            {
                throw e;
            }

            if (item.Date.Day != Day)
            {
                throw e;
            }

            ListingItem = item;

            Locality    = item.Locality;
            TimeSetting = item.TimeSetting;

            NotifyPropertiesChanged();
        }
コード例 #5
0
ファイル: Listing.cs プロジェクト: blitzik/ListingsWPF
        public void RemoveItemByDay(int day)
        {
            if (!_items.ContainsKey(day))
            {
                return;
            }

            ListingItem item = _items[day];

            WorkedDays--;
            WorkedHours      -= item.TimeSetting.WorkedHours;
            LunchHours       -= item.TimeSetting.LunchHours;
            OtherHours       -= item.TimeSetting.OtherHours;
            TotalWorkedHours -= item.TimeSetting.TotalWorkedHours;

            _items.Remove(day);

            RemoveItemHandler handler = OnRemovedListingItem;

            if (handler != null)
            {
                handler(this, new ListingItemArgs(item));
            }
        }
コード例 #6
0
ファイル: Listing.cs プロジェクト: blitzik/ListingsWPF
 public bool ContainsItem(ListingItem item)
 {
     return(_items.ContainsValue(item));
 }