Пример #1
0
    //Here's the stupid method for setting the info of a specific card in the grid
    public void SetCardInfo(int ColumnNumber, int RowNumber, LibraryCard thisCard)
    {
        Initialize();

        if (thisCard == null) {
            Debug.LogError("what the f**k");
        }

        cardGrid[ColumnNumber][RowNumber].SetInfo(thisCard);
    }
Пример #2
0
    public void FindCards()
    {
        UnlockedCardNames = new List<string> ();
        for(int i = 0; i < SaveDataControl.UnlockedCards.Count; i++) {
            UnlockedCardNames.Add(SaveDataControl.UnlockedCards[i].CardName);
        }

        StartingDeckCardNames = new List<string> ();
        for(int i = 0; i < SaveDataControl.StartingDeckCards.Count; i++) {
            StartingDeckCardNames.Add(SaveDataControl.StartingDeckCards[i].CardName);
        }

        allCards = new List<LibraryCard>[ShopControl.AllGods.Count];
        for(int i = 0; i < allCards.Length; i++) {
            allCards[i] = new List<LibraryCard>();
        }

        LibraryCard[] bunch = new LibraryCard[CardLibrary.Lib.Count];
        CardLibrary.Lib.Values.CopyTo (bunch, 0);

        for(int i = 0; i < bunch.Length; i++) {
            if(bunch[i].God == ShopControl.Gods.none)
                continue;
            int appropriateGod = ShopControl.AllGods.IndexOf(bunch[i].God);
            allCards[appropriateGod].Add(bunch[i]);
            //VV add it again if it's paper.
            if(bunch[i].CardName == "Iron Macana" | bunch[i].CardName == "Wooden Pike" | bunch[i].CardName == "Coffee")
                allCards[appropriateGod].Add(bunch[i]);
        }

        for(int i = 0; i < allCards.Length; i++) {
            if(allCards[i].Count > longestLength) {
                longestLength = allCards[i].Count;
            }
        }

        goldSpotTaken = "";
        silverSpotTaken = "";
        BronzeSpotTaken = "";

        for(int k = 0; k < SaveDataControl.StartingDeckCards.Count; k++) {
            if(SaveDataControl.StartingDeckCards[k].ThisRarity == Card.Rarity.Paper)
                continue;
            else if(SaveDataControl.StartingDeckCards[k].ThisRarity == Card.Rarity.Bronze)
                BronzeSpotTaken = SaveDataControl.StartingDeckCards[k].CardName;
            else if(SaveDataControl.StartingDeckCards[k].ThisRarity == Card.Rarity.Silver)
                silverSpotTaken = SaveDataControl.StartingDeckCards[k].CardName;
            else if(SaveDataControl.StartingDeckCards[k].ThisRarity == Card.Rarity.Gold)
                goldSpotTaken = SaveDataControl.StartingDeckCards[k].CardName;
        }
    }
        // GET: LibraryCards/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            LibraryCard libraryCard = db.LibraryCards.Find(id);

            if (libraryCard == null)
            {
                return(HttpNotFound());
            }
            return(View(libraryCard));
        }
Пример #4
0
        public void Get_Current_Holds()
        {
            var options = new DbContextOptionsBuilder <LibraryContext>()
                          .UseInMemoryDatabase("Gets_current_holds")
                          .Options;

            using (var context = new LibraryContext(options))
            {
                var book = new Book
                {
                    Id             = 2319,
                    Title          = "Ulysses",
                    NumberOfCopies = 99
                };

                var card = new LibraryCard
                {
                    Id = 16
                };

                context.Books.Add(book);
                context.LibraryCards.Add(card);
                context.SaveChanges();

                var patron = new Patron
                {
                    Id          = 118,
                    LibraryCard = card
                };

                var hold = new Hold
                {
                    Id           = 41,
                    LibraryAsset = book,
                    LibraryCard  = card
                };

                context.Patrons.Add(patron);
                context.Holds.Add(hold);
                context.SaveChanges();
            }

            using (var context = new LibraryContext(options))
            {
                var sut    = new CheckoutService(context);
                var result = sut.GetCurrentHolds(2319).ToList();
                result.Should().Contain(a => a.Id == 41);
            }
        }
 public IActionResult CreateLibraryCard(LibraryCardViewModel model)
 {
     if (ModelState.IsValid)
     {
         var newCard = new LibraryCard
         {
             Id      = model.Id,
             Created = model.TimeCreated,
             Fees    = model.Fees
         };
         _CardServices.Add(newCard);
         return(RedirectToAction("Index"));
     }
     return(View());
 }
Пример #6
0
        private void CheckoutToEarlistHold(int assetId, IEnumerable <Hold> currentHolds)
        {
            Hold earliestHold = currentHolds.OrderBy(item => item.HoldPlaced).FirstOrDefault();

            if (earliestHold == null)
            {
                return;
            }
            LibraryCard card = earliestHold.LibraryCard;

            _context.Remove(earliestHold);
            _context.SaveChanges();

            CheckOutItem(assetId, card.Id);
        }
Пример #7
0
        public IActionResult SubmitRegister(Patron patron)
        {
            LibraryCard libCard = new LibraryCard();
            var         now     = DateTime.Now;

            libCard.Fees    = 0;
            libCard.Created = now;
            var idCard = _patronService.AddNewLibraryCard(libCard);

            patron.LibraryCardId       = idCard;
            patron.HomeLibraryBranchId = 1;
            patron.RoleID = 3;
            _patronService.AddNewPatron(patron);
            return(View("Login"));
        }
Пример #8
0
        public ActionResult ReceptionBook(LibraryCard Card)
        {
            if (ModelState.IsValid)
            {
                db.Books.Find(Card.ID).ReaderID = 0;

                db.Books.Find(Card.reservedBook).Availabe = true;

                db.Entry(db.Books.Find(Card.reservedBook)).State = EntityState.Modified;

                db.SaveChanges();

                return(RedirectToAction("Index"));
            }
            return(View(Card));
        }
Пример #9
0
        public bool UpdateLibCard(LibraryCard libCard)
        {
            var _libCard = _context.LibraryCards.Find(libCard.Id);

            try
            {
                _libCard.Fees = libCard.Fees;
                //Update Author or Director
                _context.SaveChanges();
                return(true);
            }
            catch
            {
                return(false);
            }
        }
Пример #10
0
        public async Task AddItem(Book book, int quantity)
        {
            // получить читателя, если нет создать, создать для него карточку если нет и в карточку добавить запись
            var user = await userService.GetCurrentUserAsync();

            var reader = user.Reader;

            if (user.Reader == null)
            {
                reader = new Reader {
                    User = user
                };
                context.Readers.Add(reader);
            }

            var cardReader = await context.LibraryCards
                             .Include(card => card.Books)
                             .Include(card => card.Reader)
                             .FirstOrDefaultAsync(card => card.Reader != null && card.Reader.Id == reader.Id);

            if (cardReader == null)
            {
                cardReader = new LibraryCard {
                    Reader = reader
                };
                context.LibraryCards.Add(cardReader);
            }

            var cardLine = cardReader.Books?.FirstOrDefault(cardLineItem => cardLineItem.Book?.Id == book.Id && cardLineItem.Status == LibraryCartLineStatus.BookOnBasket);

            if (cardLine == null)
            {
                context.LibraryCardLines.Add(new LibraryCardLine
                {
                    Book   = book,
                    Card   = cardReader,
                    Count  = quantity,
                    Status = LibraryCartLineStatus.BookOnBasket
                });
            }
            else
            {
                cardLine.Count += quantity;
            }

            await context.SaveChangesAsync();
        }
Пример #11
0
        public void Get_Current_Patron()
        {
            var options = new DbContextOptionsBuilder <LibraryContext>()
                          .UseInMemoryDatabase("Gets_current_patron")
                          .Options;

            using (var context = new LibraryContext(options))
            {
                var card = new LibraryCard
                {
                    Id = 3233
                };

                var patron = new Patron
                {
                    FirstName   = "Kevin",
                    LastName    = "Shields",
                    LibraryCard = card
                };

                context.Patrons.Add(patron);

                var checkout = new Checkout
                {
                    Id           = 1999,
                    LibraryAsset = new Video
                    {
                        Id    = 9,
                        Title = "Stranger Things 2"
                    },

                    LibraryCard = card
                };

                context.Checkouts.Add(checkout);
                context.SaveChanges();
            }

            using (var context = new LibraryContext(options))
            {
                var sut    = new CheckoutService(context);
                var result = sut.GetCurrentPatron(9);
                result.Should().Be("Kevin Shields");
            }
        }
Пример #12
0
 /// <summary>
 /// Проверка совпадения условий поиска
 /// </summary>
 /// <param name="card">Ссылка на издание</param>
 /// <param name="info">Строка для поиска</param>
 private void Check(LibraryCard card, string info)
 {
     if (_regexCheckBox.Checked)
     {
         Regex regex = new Regex(_findTextBox.Text, RegexOptions.IgnoreCase);
         if (regex.Match(info).Success)
         {
             _resultListBox.Items.Add(card);
         }
     }
     else
     {
         if (info.ToLower().Contains(_findTextBox.Text.ToLower()))
         {
             _resultListBox.Items.Add(card);
         }
     }
 }
Пример #13
0
    void FindCards()
    {
        UnlockedCardNames = new List<string> ();
        for(int i = 0; i < SaveDataControl.UnlockedCards.Count; i++) {
            UnlockedCardNames.Add(SaveDataControl.UnlockedCards[i].CardName);
        }

        shownCards = new List<LibraryCard> ();

        LibraryCard[] bunch = new LibraryCard[CardLibrary.Lib.Count];
        CardLibrary.Lib.Values.CopyTo (bunch, 0);

        for(int i = 0; i < bunch.Length; i++) {
            if(bunch[i].God == ShopControl.AllGods[SelectedGod]) {
                shownCards.Add(bunch[i]);
            }
        }
    }
Пример #14
0
        public IActionResult Create(PatronDetailModel patronDetailModel)
        {
            var duplicate = _context.Patrons.Any(p => p.FirstName == patronDetailModel.FirstName && p.LastName == patronDetailModel.LastName && p.DateOfBirth == patronDetailModel.DateOfBirth);

            if (duplicate)
            {
                var         date        = DateTime.Now;
                LibraryCard libraryCard = new LibraryCard()
                {
                    Fees      = patronDetailModel.Fees,
                    FirstName = patronDetailModel.FirstName,
                    LastName  = patronDetailModel.LastName,
                    Created   = date
                };
                _context.Add(libraryCard);
                _context.SaveChanges();
                var patronLibrarycard = _context.LibraryCards.Where(l => l.FirstName == patronDetailModel.FirstName &&
                                                                    l.LastName == patronDetailModel.LastName && l.Created == date).FirstOrDefault();
                if (patronLibrarycard != null)
                {
                    Patron patron = new Patron()
                    {
                        FirstName           = patronDetailModel.FirstName,
                        LastName            = patronDetailModel.LastName,
                        Address             = patronDetailModel.Address,
                        DateOfBirth         = patronDetailModel.DateOfBirth,
                        TelePhoneNumber     = patronDetailModel.TelePhoneNumber,
                        HomeLibraryBranchId = patronDetailModel.HomeLibraryBranchId,
                        LibraryCardId       = patronLibrarycard.Id
                    };
                    _context.Add(patron);
                    _context.SaveChanges();
                    return(RedirectToAction("PatronList"));
                }
            }
            else
            {
                TempData["ErrorMessage"] = "Patron is already exist";
            }

            return(View());
        }
        public void PlaceHold(int assetId, int libraryCardId)
        {
            LibraryAsset libraryAsset = context.LibraryAssets.FirstOrDefault(e => e.Id == assetId);
            LibraryCard  libraryCard  = context.LibraryCards.FirstOrDefault(e => e.Id == libraryCardId);

            if (libraryAsset.Status.Name == "Available")
            {
                UpdateStatus(assetId, "On Hold");
            }

            Hold hold = new Hold
            {
                HoldPlaced   = DateTime.Now,
                LibraryAsset = libraryAsset,
                LibraryCard  = libraryCard
            };

            context.Add(hold);
            context.SaveChanges();
        }
Пример #16
0
        private void ListBoxClientBookCollection_SelectedValueChanged(object sender, EventArgs e)
        {
            if (listBoxClientBookCollection.SelectedItem != null)
            {
                int         inventoryCode = Convert.ToInt32(listBoxClientBookCollection.SelectedItem);
                LibraryCard currentCard   = workspaceLibrarian.LibraryCardRegister.GetLibraryCardByInventoryCode(inventoryCode);

                dateTimePickerGiveBook.Visible = true;
                dateTimePickerGiveBook.Value   = currentCard.DateRentBook;
                if (currentCard.DateReturnBook.HasValue)
                {
                    dateTimePickerReturn.Visible = true;
                    dateTimePickerReturn.Value   = currentCard.DateReturnBook.Value;
                }
                else
                {
                    dateTimePickerReturn.Visible = false;
                }
            }
        }
Пример #17
0
        public void CheckoutItem(int assetId, int libraryCardId)
        {
            if (IsCheckedOut(assetId))
            {
                return;
                // Add logic here to handle feedback to the user
            }

            //Get the library item 
            LibraryAsset item = _context.LibraryAssets
               .FirstOrDefault(a => a.Id == assetId);

            UpdateAssetStatus(assetId, "Checked Out");

            //Get the library Card
            LibraryCard libraryCard = _context.LibraryCards
                .Include(card => card.Checkouts)
                .FirstOrDefault(card => card.Id == libraryCardId);

            //Create a new checkout
            DateTime now = DateTime.Now;
            var checkout = new Checkout
            {
                LibraryAsset = item,
                LibraryCard = libraryCard,
                Since = now,
                Until = GetDefaultCheckoutTime(now)
            };

            _context.Add(checkout);
            //Update checkout history - this could be done using an sql trigger
            var checkoutHistory = new CheckoutHistory
            {
                CheckedOut = now,
                LibraryAsset = item,
                LibraryCard = libraryCard
            };

            _context.Add(checkoutHistory);
            _context.SaveChanges();
        }
Пример #18
0
    void FindCards()
    {
        UnlockedCardNames = new List <string> ();
        for (int i = 0; i < SaveDataControl.UnlockedCards.Count; i++)
        {
            UnlockedCardNames.Add(SaveDataControl.UnlockedCards[i].CardName);
        }

        shownCards = new List <LibraryCard> ();

        LibraryCard[] bunch = new LibraryCard[CardLibrary.Lib.Count];
        CardLibrary.Lib.Values.CopyTo(bunch, 0);

        for (int i = 0; i < bunch.Length; i++)
        {
            if (bunch[i].God == ShopControl.AllGods[SelectedGod])
            {
                shownCards.Add(bunch[i]);
            }
        }
    }
Пример #19
0
 /// <summary>
 /// Конструктор формы
 /// </summary>
 /// <param name="card">Карточка издания для редактирования</param>
 public ModifyForm(LibraryCard card)
 {
     InitializeComponent();
     Card = card;
     _titleTextBox.Text = card.Title;
     _yearTextBox.Text  = card.Year.ToString();
     _pagesTextBox.Text = card.Pages.ToString();
     if (card is Book)
     {
         _bookRadioButton.Checked     = true;
         _magazineRadioButton.Enabled = false;
         _authorsTextBox.Text         = ((Book)card).Authors;
         _publishingTextBox.Text      = ((Book)card).Publisher;
     }
     else
     {
         _magazineRadioButton.Checked = true;
         _bookRadioButton.Enabled     = false;
         _numberTextBox.Text          = ((Magazine)card).Number.ToString();
     }
 }
        public void Get_Patron_Holds()
        {
            var options = new DbContextOptionsBuilder <LibraryDbContext>()
                          .UseInMemoryDatabase("Gets_patron_holds")
                          .Options;

            using (var context = new LibraryDbContext(options))
            {
                var card = new LibraryCard
                {
                    Id = 83
                };

                var hold = new Hold
                {
                    Id           = 56,
                    LibraryAsset = new Book {
                        Id = 1
                    },
                    LibraryCard = card
                };

                var patron = new Patron
                {
                    Id          = 8,
                    LibraryCard = card
                };

                context.Patrons.Add(patron);
                context.Holds.Add(hold);
                context.SaveChanges();
            }

            using (var context = new LibraryDbContext(options))
            {
                var sut    = new PatronService(context);
                var result = sut.GetHolds(8);
                result.Count().Should().Be(1);
            }
        }
Пример #21
0
        public IActionResult Create([Bind] Patron patrons)
        {
            if (!ModelState.IsValid)
            {
                var viewModel = new PatronModel
                {
                };
            }

            if (patrons.Id == 0)
            {
                var card = new LibraryCard
                {
                    Created = DateTime.Now,
                    Fees    = 0
                };
                patron.AddCard(card);

                patron.Complete();
                patrons.LibraryCardId     = patron.GetCard();
                patrons.HomeLibraryBranch = patron.GetBranch();
                patron.Add(patrons);
            }
            else
            {
                var patronInDb = patron.Get(patrons.Id);
                patronInDb.Address         = patrons.Address;
                patronInDb.DateOfBirth     = patrons.DateOfBirth;
                patronInDb.FirstName       = patrons.FirstName;
                patronInDb.LastName        = patrons.LastName;
                patronInDb.LibraryCard     = patrons.LibraryCard;
                patronInDb.TelephoneNumber = patrons.TelephoneNumber;
            }


            patron.Complete();

            return(RedirectToAction("Index", "Patron"));
        }
Пример #22
0
        public void PlaceHold(int assetId, int libraryCardId)
        {
            LibraryAsset item = _context.LibraryAssets
                                .Include(asset => asset.Status)
                                .FirstOrDefault(asset => asset.Id == assetId);
            LibraryCard card = _context.LibraryCards.FirstOrDefault(lc => lc.Id == libraryCardId);

            if (item.Status.Name == "Available")
            {
                UpdateAssetStatus(assetId, "On Hold");
            }

            Hold newHold = new Hold()
            {
                LibraryAsset = item,
                LibraryCard  = card,
                HoldPlaced   = DateTime.Now
            };

            _context.Holds.Add(newHold);
            _context.SaveChanges();
        }
Пример #23
0
        public void Get_Library_Card_By_Asset_Id()
        {
            var options = new DbContextOptionsBuilder <LibraryContext>()
                          .UseInMemoryDatabase("Gets_library_card_for_asset")
                          .Options;

            using (var context = new LibraryContext(options))
            {
                var card = new LibraryCard
                {
                    Id      = 16,
                    Created = new DateTime(1999, 1, 1),
                    Fees    = 0M
                };

                var checkout = new Checkout
                {
                    Id           = 87,
                    LibraryAsset = new Book {
                        Id = 300
                    },
                    LibraryCard = card
                };

                context.Checkouts.Add(checkout);
                context.SaveChanges();
            }

            using (var context = new LibraryContext(options))
            {
                var sut    = new LibraryAssetService(context);
                var result = sut.GetById(300);
                result.Should()
                .BeEquivalentTo(new LibraryCard {
                    Id = 16, Created = new DateTime(1999, 1, 1), Fees = 0M
                });
            }
        }
Пример #24
0
    public override void Write(object obj, ES2Writer writer)
    {
        LibraryCard data = (LibraryCard)obj;

        // Add your writer.Write calls here.
        writer.Write(data.CardName);
        writer.Write(data.DisplayName);
        writer.Write(data.IconPath);
        writer.Write(data.Tooltip);
        writer.Write(data.DisplayText);
        writer.Write(data.MiniDisplayText);
        writer.Write(data.RangeTargetType);
        writer.Write(data.rangeMin);
        writer.Write(data.rangeMax);
        writer.Write(data.AoeTargetType);
        writer.Write(data.aoeMinRange);
        writer.Write(data.aoeMaxRange);
        writer.Write(data.ThisRarity);
        writer.Write(data.CardAction);
        writer.Write(data.God);
        writer.Write(data.Cost);
        writer.Write(data.UnlockCost);
    }
Пример #25
0
    public override void Read(ES2Reader reader, object c)
    {
        LibraryCard data = (LibraryCard)c;

        // Add your reader.Read calls here to read the data into the object.
        data.CardName        = reader.Read <System.String>();
        data.DisplayName     = reader.Read <System.String>();
        data.IconPath        = reader.Read <System.String>();
        data.Tooltip         = reader.Read <System.String>();
        data.DisplayText     = reader.Read <System.String>();
        data.MiniDisplayText = reader.Read <System.String>();
        data.RangeTargetType = reader.Read <GridControl.TargetTypes>();
        data.rangeMin        = reader.Read <System.Int32>();
        data.rangeMax        = reader.Read <System.Int32>();
        data.AoeTargetType   = reader.Read <GridControl.TargetTypes>();
        data.aoeMinRange     = reader.Read <System.Int32>();
        data.aoeMaxRange     = reader.Read <System.Int32>();
        data.ThisRarity      = reader.Read <Card.Rarity>();
        data.CardAction      = reader.Read <Card.CardActionTypes>();
        data.God             = reader.Read <ShopControl.Gods>();
        data.Cost            = reader.Read <System.Int32>();
        data.UnlockCost      = reader.Read <System.Int32>();
    }
 private void showCards_Load(object sender, EventArgs e)
 {
     try
     {
         //MessageBox.Show("n");
         LibraryCard lc = db.showCard(ID);
         //MessageBox.Show("m");
         //lc = db.showCard(ID);
         idLabel.Text            = lc.ID.ToString();
         cardLabel.Text          = lc.cardNumber.ToString();
         issueDateLabel.Text     = lc.issueDate;
         deadLineLabel.Text      = lc.deadline;
         numberOfBooksLabel.Text = lc.numberOfBook.ToString();
         //if (LibraryCard.k > 1)
         k = LibraryCard.k - 1;
         //else
         //  k = 10;
     }
     catch (Exception el)
     {
         this.Close();
     }
 }
        public void CheckOutItem(int assetId, int libraryCardId)
        {
            if (IsCheckedOut(assetId))
            {
                return;
            }

            LibraryAsset libraryAsset = context.LibraryAssets.FirstOrDefault(e => e.Id == assetId);

            UpdateStatus(assetId, "Checked Out");

            LibraryCard libraryCard = context.LibraryCards
                                      .Include(card => card.Id == libraryCardId)
                                      .FirstOrDefault(card => card.Id == libraryCardId);

            DateTime now = DateTime.Now;

            CheckOut checkout = new CheckOut
            {
                LibraryAsset = libraryAsset,
                LibraryCard  = libraryCard,
                Since        = now,
                Until        = GetDefaultCheckoutTime(now)
            };

            context.Add(checkout);
            CheckOutHistory checkOutHistory = new CheckOutHistory
            {
                LibraryAsset = libraryAsset,
                LibraryCard  = libraryCard,
                CheckedOut   = now
            };

            context.Add(checkOutHistory);

            context.SaveChanges();
        }
Пример #28
0
        public void CheckOutItem(int assetId, int libraryCardId)
        {
            if (IsCheckedOut(assetId))
            {
                return;
            }

            LibraryAsset item = _context.LibraryAssets.FirstOrDefault(asset => asset.Id == assetId);

            UpdateAssetStatus(assetId, "Checked Out");

            LibraryCard libraryCard = _context.LibraryCards
                                      .Include(card => card.Checkouts)
                                      .FirstOrDefault(card => card.Id == libraryCardId);

            DateTime now = DateTime.Now;

            Checkout checkout = new Checkout()
            {
                LibraryAsset = item,
                LibraryCard  = libraryCard,
                Since        = now,
                Until        = GetDefaultcheckoutTime(now)
            };

            _context.Checkouts.Add(checkout);

            CheckoutHistory checkoutHistory = new CheckoutHistory()
            {
                CheckedOut   = now,
                LibraryAsset = item,
                LibraryCard  = libraryCard
            };

            _context.CheckoutHistories.Add(checkoutHistory);
            _context.SaveChanges();
        }
Пример #29
0
 public void Add(LibraryCard newLibraryCard)
 {
     _context.Add(newLibraryCard);
     _context.SaveChanges();
 }
Пример #30
0
        public static LibraryCard GetLibraryCardIdInfo(String libraryCardID)
        {
            LibraryCard card = LibraryCardIfo.QueryLibraryCardIfo(libraryCardID);

            return(card);
        }
        public async Task <IActionResult> OnPostAsync(string returnUrl = null)
        {
            returnUrl = returnUrl ?? Url.Content("~/");
            if (ModelState.IsValid)
            {
                LibraryModel lib      = LibraryModel.getLib();
                LibraryCard  userCard = new LibraryCard();
                userCard.Name      = Input.LastName + " " + Input.Name + " " + Input.FatherName;
                userCard.Email     = Email;
                userCard.Birthday  = Input.BDay;
                userCard.Adress    = Input.Address;
                userCard.Telephone = Input.Phone;
                var user = new IdentityUser {
                    UserName = Email, Email = Email, PhoneNumber = Input.Phone
                };
                if (SecretKey == "KH_2286879_Library_key")
                {
                    var result = await _userManager.CreateAsync(user, Input.Password);

                    if (result.Succeeded)
                    {
                        lib.Library.LibraryCard.Add(userCard);
                        lib.Library.SaveChanges();
                        await _userManager.AddToRoleAsync(user, "Librarian");

                        _logger.LogInformation("{0} зарегистривован как библиотекарь.");

                        var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);

                        var callbackUrl = Url.Page(
                            "/Account/ConfirmEmail",
                            pageHandler: null,
                            values: new { userId = user.Id, code = code },
                            protocol: Request.Scheme);

                        await _emailSender.SendEmailAsync(Email, "Библиотека",
                                                          "Здравствуйте, " + userCard.Name + "! Наша библиотека рада новому библиотекарю!");

                        await _signInManager.SignInAsync(user, isPersistent : false);

                        return(LocalRedirect(returnUrl));
                    }
                    foreach (var error in result.Errors)
                    {
                        ModelState.AddModelError(string.Empty, error.Description);
                    }
                }
                else if (SecretKey == null)
                {
                    var result = await _userManager.CreateAsync(user, Input.Password);

                    if (result.Succeeded)
                    {
                        lib.Library.LibraryCard.Add(userCard);
                        lib.Library.SaveChanges();
                        await _userManager.AddToRoleAsync(user, "User");

                        _logger.LogInformation("{0} зарегистривован как пользователь.");

                        var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);

                        var callbackUrl = Url.Page(
                            "/Account/ConfirmEmail",
                            pageHandler: null,
                            values: new { userId = user.Id, code = code },
                            protocol: Request.Scheme);

                        await _emailSender.SendEmailAsync(Email, "Библиотека",
                                                          "Здравствуйте, " + userCard.Name + "! Наша библиотека рада новому пользоватею!");

                        await _signInManager.SignInAsync(user, isPersistent : false);

                        return(LocalRedirect(returnUrl));
                    }
                    foreach (var error in result.Errors)
                    {
                        ModelState.AddModelError(string.Empty, error.Description);
                    }
                }
            }
            // If we got this far, something failed, redisplay form
            return(Page());
        }
Пример #32
0
    void OnGUI()
    {
        GUI.depth = 1;

        GUI.Box(new Rect(0, 0, Screen.width, Screen.height), "", S.GUIStyleLibraryInst.MainStyles.BlackBackground);

        GUI.depth = 0;

        GUI.BeginGroup (new Rect (Screen.width * .1f, Screen.height * .05f, Screen.width * .9f, Screen.height * .9f));

        if(allCards.Length == 0) {
            FindCards();
        }

        for(int i = 0; i < ShopControl.AllGods.Count-2; i++) {
            if(SaveDataControl.UnlockedGods.Contains(ShopControl.AllGods[i])) {
                GUI.Box(new Rect(seventh*i, 0f, seventh, Screen.height*.1f), new GUIContent(S.ShopControlGUIInst.GodIcons[i]), GUIStyle.none);
            } else {
                GUI.Box(new Rect(seventh*i, 0f, seventh, Screen.height*.1f), new GUIContent(S.ShopControlGUIInst.GodIcons[7]), GUIStyle.none);
            }
        }

        scrollPos = GUI.BeginScrollView(new Rect(0, Screen.height*.1f, Screen.width*.9f, Screen.height*.47f), scrollPos,
                                        new Rect(0, Screen.height*.1f, Screen.width*.795f, Screen.height*.1f*longestLength));
        for(int i = 0; i < ShopControl.AllGods.Count; i++) {

            for(int j = 0; j < allCards[i].Count; j++) {
                LibraryCard thisCard = allCards[i][j];
                Texture2D Rarity = S.ShopControlGUIInst.PaperTexture;
                if(thisCard.ThisRarity == Card.Rarity.Bronze)  Rarity = S.ShopControlGUIInst.BronzeTexture;
                else if(thisCard.ThisRarity == Card.Rarity.Silver)  Rarity = S.ShopControlGUIInst.SilverTexture;
                else if(thisCard.ThisRarity == Card.Rarity.Gold)  Rarity = S.ShopControlGUIInst.GoldTexture;

                GUIContent name = new GUIContent(thisCard.CardName, Rarity);
                    //if this isn't unlocked, don't display it....
                if(!UnlockedCardNames.Contains(thisCard.CardName) |
                   (thisCard.ThisRarity != Card.Rarity.Paper && !SaveDataControl.UnlockedGods.Contains(thisCard.God))) {

                    if(GUI.Button(new Rect(seventh*i, Screen.height*.1f*(j+1), seventh, Screen.height*.1f),
                                  "???", S.GUIStyleLibraryInst.CustomizeStyles.CardToggleOff)) {

                    }
                }
                    //if this is in your starting deck, show a CardToggleRemove button, which removes it
                else if (StartingDeckCardNames.Contains(thisCard.CardName)) {
                    GUIStyle UnlockedStyle = new GUIStyle(S.GUIStyleLibraryInst.CustomizeStyles.CardToggleRemove);
                    if(thisCard.ThisRarity == Card.Rarity.Paper) {
                        UnlockedStyle.normal = S.GUIStyleLibraryInst.CustomizeStyles.CardNeutral.normal;
                    }
                    if(GUI.Button(new Rect(seventh*i, Screen.height*.1f*(j+1), seventh, Screen.height*.1f),
                                  name, UnlockedStyle)) {
                        selectedCard = thisCard;
                        selectedGod = i;

                        if(thisCard.ThisRarity == Card.Rarity.Paper) {
                            return;
                        }

                        for(int k = 0; k < SaveDataControl.StartingDeckCards.Count; k++) {
                            if(SaveDataControl.StartingDeckCards[k].CardName == thisCard.CardName) {
                                SaveDataControl.StartingDeckCards.RemoveAt(k);
                            }
                        }

                        FindCards();
                    }
                }
                    //if this isn't in your starting deck, show a CardToggleAdd button,
                        //which adds it to your starting deck if you haven't added your Bronze or silver card
                else {
                    if(GUI.Button(new Rect(seventh*i, Screen.height*.1f*(j+1), seventh, Screen.height*.1f),
                                  name, S.GUIStyleLibraryInst.CustomizeStyles.CardToggleAdd)) {

                        selectedCard = thisCard;
                        selectedGod = i;

                        if (thisCard.ThisRarity == Card.Rarity.Paper) { return; }
                        else
                        {
                            Card.Rarity thisRarity = thisCard.ThisRarity;

                            for (int k = 0; k < SaveDataControl.StartingDeckCards.Count; k++)
                            {
                                if (SaveDataControl.StartingDeckCards[k].ThisRarity == thisRarity)
                                {
                                    SaveDataControl.StartingDeckCards.RemoveAt(k);
                                    break;
                                }
                            }

                            SaveDataControl.StartingDeckCards.Add(thisCard);
                        }

                        FindCards();
                    }
                }
            }
        }
        GUI.EndScrollView ();

        GUI.BeginGroup (new Rect (Screen.width*.4f, Screen.height * .585f, Screen.width * .4f, Screen.height * .3f), "");
        if (BronzeSpotTaken != "")
        {
            if (GUI.Button(new Rect(0, 0, Screen.width * .4f, Screen.height * .1f),
                           new GUIContent("Your added Bronze card is " + BronzeSpotTaken + " ", S.ShopControlGUIInst.BronzeTexture),
                           S.GUIStyleLibraryInst.CustomizeStyles.RarityToggleOn))
                selectedCard = CardLibrary.Lib[BronzeSpotTaken];
        }
        else
        {
            GUI.Box(new Rect(0, 0, Screen.width * .4f, Screen.height * .1f),
                    new GUIContent("You haven't chosen a Bronze card to add to your deck."), S.GUIStyleLibraryInst.CustomizeStyles.RarityToggleOff);
        }
        if (silverSpotTaken != "")
        {
            if (GUI.Button(new Rect(0, Screen.height * .1f, Screen.width * .4f, Screen.height * .1f),
                           new GUIContent("Your added Silver card is " + silverSpotTaken + " ", S.ShopControlGUIInst.SilverTexture),
                           S.GUIStyleLibraryInst.CustomizeStyles.RarityToggleOn))
                selectedCard = CardLibrary.Lib[silverSpotTaken];
        }
        else
        {
            GUI.Box(new Rect(0, Screen.height * .1f, Screen.width * .4f, Screen.height * .1f),
                    new GUIContent("You haven't chosen a silver card to add to your deck."), S.GUIStyleLibraryInst.CustomizeStyles.RarityToggleOff);
        }
        if (goldSpotTaken != "")
        {
            if (GUI.Button(new Rect(0, Screen.height * .2f, Screen.width * .4f, Screen.height * .1f),
                           new GUIContent("Your added Gold card is " + goldSpotTaken + " ", S.ShopControlGUIInst.GoldTexture),
                           S.GUIStyleLibraryInst.CustomizeStyles.RarityToggleOn))
                selectedCard = CardLibrary.Lib[goldSpotTaken];
        }
        else
        {
            GUI.Box(new Rect(0, Screen.height * .2f, Screen.width * .4f, Screen.height * .1f),
                    new GUIContent("You haven't chosen a gold card to add to your deck."), S.GUIStyleLibraryInst.CustomizeStyles.RarityToggleOff);
        }
        GUI.EndGroup ();

        if(selectedCard.CardName != null) {
            GUI.BeginGroup (new Rect (Screen.width * 0f, Screen.height * .585f, Screen.width * .35f, Screen.height * .3f), "");
            if (S.ShopControlGUIInst.CardTextures[selectedGod] != null)
            {
                GUI.DrawTexture(new Rect(Screen.width*.0f, Screen.height*.0f, Screen.width*.35f, Screen.height*.3f),
                                S.ShopControlGUIInst.CardTextures[selectedGod]);
            }
            GUIStyle cardNameStyle = new GUIStyle(S.GUIStyleLibraryInst.CustomizeStyles.CardNameStyle);
            cardNameStyle.fontSize = S.GUIStyleLibraryInst.CustomizeStyles.CustomizeCardNameFontSize;
            cardNameStyle.alignment = TextAnchor.UpperLeft;
            GUIStyle cardTextStyle = new GUIStyle(S.GUIStyleLibraryInst.CustomizeStyles.CardTextStyle);
            cardTextStyle.fontSize = S.GUIStyleLibraryInst.CustomizeStyles.CustomizeCardTextFontSize;
            cardTextStyle.alignment = TextAnchor.UpperLeft;
            if(selectedCard.God == ShopControl.Gods.Akan | selectedCard.God == ShopControl.Gods.Buluc |
               selectedCard.God == ShopControl.Gods.Ikka | selectedCard.God == ShopControl.Gods.Kinich |
               selectedCard.God == ShopControl.Gods.Chac) {
                cardNameStyle.normal.textColor = Color.black;
                cardTextStyle.normal.textColor = Color.black;
            } else {
                cardNameStyle.normal.textColor = Color.white;
                cardTextStyle.normal.textColor = Color.white;
            }
            GUI.Box(new Rect(Screen.width*.025f, Screen.height*.025f, Screen.width*.25f, Screen.height*.1f),
                    selectedCard.DisplayName, cardNameStyle);
            Texture2D icon = Resources.Load("sprites/card icons/" + selectedCard.IconPath) as Texture2D;
            GUI.Box(new Rect(Screen.width*.21f, Screen.height*.025f, Screen.width*.11f, Screen.height*.11f),
                    icon, GUIStyle.none);
            GUI.Box(new Rect(Screen.width*.025f, Screen.height*.1f, Screen.width*.3f, Screen.height*.15f),
                    selectedCard.DisplayText, cardTextStyle);
            GUI.DrawTexture(new Rect(Screen.width*.275f, Screen.height*.25f, Screen.width*.05f, Screen.width*.05f),
                            S.ShopControlGUIInst.GodIcons[selectedGod]);
            Card.Rarity rarity = selectedCard.ThisRarity;
            Texture2D rarityTexture = S.ShopControlGUIInst.PaperTexture;
            if(rarity == Card.Rarity.Bronze) rarityTexture = S.ShopControlGUIInst.BronzeTexture;
            else if(rarity == Card.Rarity.Silver) rarityTexture = S.ShopControlGUIInst.SilverTexture;
            else if(rarity == Card.Rarity.Gold) rarityTexture = S.ShopControlGUIInst.GoldTexture;
            GUI.DrawTexture(new Rect(Screen.width*.025f, Screen.height*.25f, Screen.width*.05f, Screen.width*.05f), rarityTexture);
            GUI.EndGroup ();
        }
        else {
            GUI.Box(new Rect(Screen.width*.0f,Screen.height*.585f, Screen.width*.3f, Screen.height*.3f),
                    "Your starting deck consists of two of every card of paper rarity.\n\n" +
                "You can pick one unlocked card of each rarity to add to your starting deck.", S.GUIStyleLibraryInst.CustomizeStyles.InstructionInfoBox);
        }

        GUI.EndGroup ();

        GUIStyle gobackstyle = new GUIStyle(S.GUIStyleLibraryInst.CustomizeStyles.CardToggleRemove);
        gobackstyle.fontSize = 14;
        if(GUI.Button(new Rect(Screen.width*.3f, Screen.height*.95f, Screen.width*.4f, Screen.height*.05f),
                      "Go back", gobackstyle)) {
            SaveDataControl.Save();
            selectedCard = new LibraryCard();
            S.MenuControlInst.TurnOnMenu(MenuControl.MenuType.MainMenu);
        }
    }
Пример #33
0
    public void SetInfo(LibraryCard card)
    {
        Initialize();

        thisCard = card;

        gameObject.SetActive(true);

        background.gameObject.SetActive(true);
        showThisCardButton.gameObject.SetActive(true);
        buyingThisCardBackground.gameObject.transform.parent.gameObject.SetActive(true);
        costBarDescription.gameObject.transform.parent.gameObject.SetActive(true);
        showThisCardButton.gameObject.transform.parent.gameObject.SetActive(true);

        boughtThisCardDialog.gameObject.SetActive(false);

        description.text = card.DisplayText;
        title.text = card.CardName;

        if (thisCard.God == ShopControl.Gods.Akan | thisCard.God == ShopControl.Gods.Buluc |
            thisCard.God == ShopControl.Gods.Ikka | thisCard.God == ShopControl.Gods.Kinich |
            thisCard.God == ShopControl.Gods.Chac) {
            // set text color to black
            title.color = new Color(0, 0, 0);
            description.color = new Color(0, 0, 0);
        } else {
            // set text color to white
            title.color = new Color(1, 1, 1);
            description.color = new Color(1, 1, 1);
        }

        if (thisCard.ThisRarity == Card.Rarity.Bronze) {
            //set rarity picture
            rarityIcon.sprite = S.ShopControlGUIInst.Bronze;
            //set cost box background color
            costRarityIcon.sprite = S.ShopControlGUIInst.Bronze;
            costBarDescription.text = "$2\n←";
        } else if (thisCard.ThisRarity == Card.Rarity.Silver) {
            //set rarity picture
            rarityIcon.sprite = S.ShopControlGUIInst.Silver;
            //set cost box background color
            costRarityIcon.sprite = S.ShopControlGUIInst.Silver;
            costBarDescription.text = "$4\n←";
        } else if (thisCard.ThisRarity == Card.Rarity.Gold) {
            //set rarity picture
            rarityIcon.sprite = S.ShopControlGUIInst.Gold;
            //set cost box background color
            costRarityIcon.sprite = S.ShopControlGUIInst.Gold;
            costBarDescription.text = "$6\n←";
        }

        // set icon
        Sprite loadIcon = Resources.Load<Sprite> ("sprites/card icons/" + thisCard.IconPath);
        icon.sprite = loadIcon;

        if (thisCard.rangeMax != 0) {
            rangeIcon.gameObject.SetActive(true);
            rangeIcon.sprite = Resources.Load<Sprite>("sprites/targeting icons/range " + thisCard.RangeTargetType.ToString() +
                " " + thisCard.rangeMin.ToString() + "-" + thisCard.rangeMax.ToString());
        }
        else {
            rangeIcon.gameObject.SetActive(false);
        }

        if(thisCard.aoeMaxRange != 0) {
            aoeIcon.gameObject.SetActive(true);
            aoeIcon.sprite = Resources.Load<Sprite>("sprites/targeting icons/aoe " + thisCard.AoeTargetType.ToString() +
                " " + thisCard.aoeMinRange.ToString() + "-" + thisCard.aoeMaxRange.ToString());
        }
        else {
            aoeIcon.gameObject.SetActive(false);
        }

        // set god icon
        godIcon.sprite = S.ShopControlGUIInst.SpriteGodIcons[ShopControl.AllGods.IndexOf(thisCard.God)];

        // set card background
        background.sprite = S.ShopControlGUIInst.GodSmallCards[ShopControl.AllGods.IndexOf(thisCard.God)];

        GameObject go = buyingThisCardText.transform.parent.gameObject;
        if (!SaveDataControl.UnlockedCards.Contains (thisCard) && SaveDataControl.UnlockedGods.Contains (thisCard.God)) {
            go.SetActive(true);
            Invoke("HideCollectionAddDialog", 2.0f);
        } else {
            go.SetActive(false);
        }
    }
Пример #34
0
    public static bool TryToUnlockCard(LibraryCard card)
    {
        if (!UnlockedCards.Contains(card) && UnlockedGods.Contains(card.God))
        {
            UnlockedCards.Add(card);
            NewCardsAvailable = true;
            SaveDataControl.Save();
            return true;
        }

        return false;
    }
Пример #35
0
 public override object Read(ES2Reader reader)
 {
     LibraryCard data = new LibraryCard();
     Read(reader, data);
     return data;
 }
Пример #36
0
    public virtual void Initialize(bool alreadyDiscarded)
    {
        useGUILayout = false;

        cardUI = gameObject.GetComponent<CardUI> ();
        cardSFX = gameObject.GetComponent<CardSFX> ();
        playerObj = GameObject.FindGameObjectWithTag("Player");

        // Initialize card variables
        ThisLibraryCard = CardLibrary.Lib[CardName];

        name = CardName;
        CardName = ThisLibraryCard.CardName;
        DisplayName = ThisLibraryCard.DisplayName;
        IconPath = "sprites/card icons/" + ThisLibraryCard.IconPath;
        Tooltip = ThisLibraryCard.Tooltip;
        DisplayText = ThisLibraryCard.DisplayText;
        MiniDisplayText = ThisLibraryCard.MiniDisplayText;
        rangeTargetType = ThisLibraryCard.RangeTargetType;
        minRange = ThisLibraryCard.rangeMin;
        maxRange = ThisLibraryCard.rangeMax;
        aoeTargetType = ThisLibraryCard.AoeTargetType;
        aoeMinRange = ThisLibraryCard.aoeMinRange;
        aoeMaxRange = ThisLibraryCard.aoeMaxRange;
        ThisRarity = ThisLibraryCard.ThisRarity;
        CardAction = ThisLibraryCard.CardAction;
        God = ThisLibraryCard.God;

        if (!alreadyDiscarded) {
            S.GameControlInst.Hand.Add(gameObject);
        }

        switch (ThisRarity)
        {
        case Card.Rarity.Gold:
            Cost = 10;
            break;
        case Card.Rarity.Silver:
            Cost = 6;
            break;
        case Card.Rarity.Bronze:
            Cost = 3;
            break;
        case Card.Rarity.Paper:
            Cost = 0;
            break;
        }

        cardUI.Initialize (alreadyDiscarded);

        cardSFX.PlayDrawCardSFX();
    }
Пример #37
0
        public ActionResult SearchReader(int ID)
        {
            LibraryCard card = db.LibraryCards.Find(ID);

            return(View(card));
        }
Пример #38
0
    public static string CultToString(LibraryCard.Cult cEnum)
    {
        string cult = null;

        switch ((int)cEnum)
        {
            case 0:
                cult = "greed";
                break;
            case 1:
                cult = "envy";
                break;
            case 2:
                cult = "wrath";
                break;
            case 3:
                cult = "pride";
                break;
            case 4:
                cult = "gluttony";
                break;
            case 5:
                cult = "lust";
                break;
            case 6:
                cult = "sloth";
                break;
        }

        return cult;
    }
        public void Get_Patron_Checkouts()
        {
            var options = new DbContextOptionsBuilder <LibraryDbContext>()
                          .UseInMemoryDatabase("Gets_patron_checkouts")
                          .Options;

            using (var context = new LibraryDbContext(options))
            {
                var book = new Book
                {
                    Id    = 231,
                    Title = "Compilers - Principles, Techniques, and Tools"
                };

                var video = new Video
                {
                    Id    = 8878,
                    Title = "The Great British Baking Show"
                };

                var card = new LibraryCard
                {
                    Id = 801
                };

                var patron = new Patron
                {
                    Id          = 72,
                    LibraryCard = card
                };

                context.Patrons.Add(patron);
                context.Videos.Add(video);
                context.Books.Add(book);
                context.SaveChanges();

                var checkouts = new List <Checkout>
                {
                    new Checkout
                    {
                        Id           = 1992,
                        LibraryCard  = card,
                        LibraryAsset = book
                    },
                    new Checkout
                    {
                        Id           = 1993,
                        LibraryCard  = card,
                        LibraryAsset = video
                    },
                    new Checkout
                    {
                        Id           = 1994,
                        LibraryCard  = card,
                        LibraryAsset = new Book {
                            Title = "Frankenstein "
                        }
                    }
                };

                context.Checkouts.AddRange(checkouts);
                context.SaveChanges();
            }

            using (var context = new LibraryDbContext(options))
            {
                var sut       = new PatronService(context);
                var result    = sut.GetCheckouts(72);
                var checkouts = result as Checkout[] ?? result.ToArray();
                checkouts.Length.Should().Be(3);
            }
        }