コード例 #1
0
 void ChangeItemStatus(MovieItemData item, MovieItemStatus oldStatus, MovieItemStatus newStatus)
 {
     ItemsWithStatus[statusesIndexes[oldStatus]].Remove(item);
     ItemsWithStatusAndFormat[statusesIndexes[oldStatus], formatsIndexes[item.Format]].Remove(item);
     ItemsWithStatus[statusesIndexes[newStatus]].AddLast(item);
     ItemsWithStatusAndFormat[statusesIndexes[newStatus], formatsIndexes[item.Format]].AddLast(item);
 }
コード例 #2
0
            public MovieItemData DamageItem()
            {
                MovieItemFormat format = formats[random.Next(formats.Length)];
                MovieItemData   item   = GetActiveItem(format);

                ChangeItemStatus(item, MovieItemStatus.Active, MovieItemStatus.Damaged);
                return(item);
            }
コード例 #3
0
            public MovieItemData RentItem(MovieItemFormat format, bool isSell)
            {
                MovieItemStatus status = isSell ? MovieItemStatus.Sold : MovieItemStatus.Rented;
                MovieItemData   item   = GetActiveItem(format);

                ChangeItemStatus(item, MovieItemStatus.Active, status);
                return(item);
            }
コード例 #4
0
            MovieItemData GetActiveItem(MovieItemFormat format)
            {
                LinkedList <MovieItemData> activeItemsWithFormat = ItemsWithStatusAndFormat[statusesIndexes[MovieItemStatus.Active], formatsIndexes[format]];
                MovieItemData item;

                if (activeItemsWithFormat.Count != 0)
                {
                    return(activeItemsWithFormat.First.Value);
                }
                item = new MovieItemData(this, format);
                Items.AddLast(item);
                ItemsWithFormat[formatsIndexes[format]].AddLast(item);
                ItemsWithStatus[statusesIndexes[MovieItemStatus.Active]].AddLast(item);
                activeItemsWithFormat.AddLast(item);
                return(item);
            }
コード例 #5
0
 public void ReturnItem(MovieItemData item)
 {
     ChangeItemStatus(item, MovieItemStatus.Rented, MovieItemStatus.Active);
 }