Ejemplo n.º 1
0
        public async Task <IActionResult> PutLibrarySystem([FromRoute] int id, [FromBody] LibrarySystem LibrarySystem)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != LibrarySystem.ID)
            {
                return(BadRequest());
            }

            _context.Entry(LibrarySystem).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();

                return(Accepted(LibrarySystem));
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!LibrarySystemExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Ejemplo n.º 2
0
 protected override void OnNavigatedTo(NavigationEventArgs e)
 {
     base.OnNavigatedTo(e);
     infoFromNavPage = (Tuple <LibrarySystem, bool, LibraryItem>)e.Parameter;
     system          = infoFromNavPage.Item1;
     if (infoFromNavPage.Item2 == true)
     {
         book_radioBtn.Visibility      = Visibility.Collapsed;
         magazine_radioBtn_.Visibility = Visibility.Collapsed;
         IsDateChange              = true;
         Name_txtBox.Text          = infoFromNavPage.Item3.Name;
         publisher_txtBox.Text     = infoFromNavPage.Item3.Publisher;
         price_txtBox.Text         = infoFromNavPage.Item3.Price.ToString();
         id_txtBox.Text            = "1111";
         id_txtBox.Visibility      = Visibility.Collapsed;
         genreCombox.SelectedIndex = (int)infoFromNavPage.Item3.Genre;
         amount_txtBox.Text        = infoFromNavPage.Item3.Amount.ToString();
         publishDate_date.Date     = infoFromNavPage.Item3.DateOfPrinting;
         CreateBook_btn.Content    = "Edit item";
         Book book = infoFromNavPage.Item3 as Book;
         if (book == null)
         {
             Magazine magazine = infoFromNavPage.Item3 as Magazine;
             magazine_radioBtn_.IsChecked = true;
             edition_txtBox.Text          = magazine.Edition.ToString();
         }
         else
         {
             book_radioBtn.IsChecked = true;
             auther_txtBox.Text      = book.Auther;
         }
     }
 }
        private void Get_LibrarySystem(object obj)
        {
            MissionInfo info     = (MissionInfo)obj;
            string      data     = info.MissionData;
            string      username = string.Empty;
            string      keyword  = string.Empty;
            string      page     = string.Empty;
            string      res      = string.Empty;

            if (string.IsNullOrEmpty(data))
            {
                data = string.Empty;
            }
            Regex           reg     = new Regex(@"username=(.+?)&keyword=(.+?)&page=(.+)");
            MatchCollection mcResul = reg.Matches(data);

            if (mcResul.Count > 0)
            {
                username = mcResul[0].Groups[1].Value;
                keyword  = mcResul[0].Groups[2].Value;
                page     = mcResul[0].Groups[3].Value;
            }
            AddTalkMessage("收到 [" + username + "] 请求图书馆信息检索");
            res = new LibrarySystem().Get(username, keyword, page);
            SendMessage(info.MissionID + "," + res);
            AddTalkMessage("已向 [" + username + "] 发送图书馆信息检索结果");
        }
Ejemplo n.º 4
0
 protected override void OnNavigatedTo(NavigationEventArgs e)
 {
     base.OnNavigatedTo(e);
     infoFromNavPage = (Tuple <LibrarySystem, bool, Sale>)e.Parameter;
     system          = infoFromNavPage.Item1;
     if (infoFromNavPage.Item2 == true)
     {
         GenreSale_radioBtn.Visibility  = Visibility.Collapsed;
         otherSale_radioBtn_.Visibility = Visibility.Collapsed;
         isDateChange     = true;
         Name_txtBox.Text = infoFromNavPage.Item3.Name;
         discount_comboBox.SelectedIndex = (infoFromNavPage.Item3.PrecentageOfDicrease) / 10 - 1;
         endDate_calendar.Date           = infoFromNavPage.Item3.EndDate;
         CreateSale_btn.Content          = "Edit sale";
         GenreSale sale = infoFromNavPage.Item3 as GenreSale;
         if (sale == null)
         {
             StringSale sale1 = infoFromNavPage.Item3 as StringSale;
             otherSale_radioBtn_.IsChecked = true;
             search_combox.SelectedIndex   = sale1.Filter;
             word_txtBox.Text = sale1.Word;
         }
         else
         {
             GenreSale_radioBtn.IsChecked = true;
             genreCombox.SelectedIndex    = (int)sale.Genre;
         }
     }
 }
 protected override void OnNavigatedTo(NavigationEventArgs e)
 {
     base.OnNavigatedTo(e);
     infoFromNavPage = (Tuple <LibrarySystem, List <LibraryItem>, int>)e.Parameter;
     system          = infoFromNavPage.Item1;
     Refrash();
 }
Ejemplo n.º 6
0
        private void Get_LibrarySystem(object obj)
        {
            User   user     = (User)obj;
            string data     = user.data;
            string username = string.Empty;
            string keyword  = string.Empty;
            string page     = string.Empty;
            string res      = string.Empty;

            if (string.IsNullOrEmpty(data))
            {
                data = string.Empty;
            }
            Regex           reg     = new Regex(@"username=(.+?)&keyword=(.+?)&page=(.+)");
            MatchCollection mcResul = reg.Matches(data);

            if (mcResul.Count > 0)
            {
                username = mcResul[0].Groups[1].Value;
                keyword  = mcResul[0].Groups[2].Value;
                page     = mcResul[0].Groups[3].Value;
            }
            AddContent("收到 [" + user.client.Client.RemoteEndPoint + "][" + username + "] 请求图书馆信息检索");
            res = new LibrarySystem().Get(username, keyword, page);
            SendToClient(user, res);
            AddContent("已向 [" + user.client.Client.RemoteEndPoint + "][" + username + "] 发送图书馆信息检索结果");
            RemoveUser(user);
        }
Ejemplo n.º 7
0
        private void button3_Click(object sender, EventArgs e)
        {
            Console.WriteLine("开始获取 - " + DateTime.Now + '.' + DateTime.Now.Millisecond);
            LibrarySystem ls = new LibrarySystem();

            textBox1.Text = ls.Get(textBox2.Text, "java", "1");
            Console.WriteLine("获取完成 - " + DateTime.Now + '.' + DateTime.Now.Millisecond);
        }
Ejemplo n.º 8
0
 public MainPage()
 {
     this.InitializeComponent();
     ApplicationView.PreferredLaunchViewSize      = new Windows.Foundation.Size((double)1280, (double)720);
     ApplicationView.PreferredLaunchWindowingMode = ApplicationViewWindowingMode.PreferredLaunchViewSize;
     system = new LibrarySystem(ApplicationData.Current.LocalFolder.Path);
     password_box.KeyDown           += Password_box_KeyDown;
     Application.Current.Suspending += Current_Suspending;
 }
Ejemplo n.º 9
0
        public async Task <IActionResult> PostLibrarySystem([FromBody] LibrarySystem LibrarySystem)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            _context.LibrarySystems.Add(LibrarySystem);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetLibrarySystem", new { id = LibrarySystem.ID }, LibrarySystem));
        }
Ejemplo n.º 10
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllersWithViews();

            // Dependency Injection
            var bookStorage   = new BookStorageList();
            var patronStorage = new PatronStorageList();
            var loanStorage   = new LoanStorageList();

            var library = new LibrarySystem(bookStorage, patronStorage, loanStorage);

            services.AddSingleton <LibrarySystem>(library);
        }
Ejemplo n.º 11
0
 protected override void OnNavigatedTo(NavigationEventArgs e)
 {
     base.OnNavigatedTo(e);
     System = (LibrarySystem)e.Parameter;
     //name of user
     bannar_txtblok.Text = UiMeneger.CurrentUser.Name;
     //user balance
     if (UiMeneger.CurrentUser.IsLibrarian == true)
     {
         librarian_canvas.Visibility = Visibility.Visible;
         balance_img.Visibility      = Visibility.Collapsed;
         balance_txtblock.Visibility = Visibility.Collapsed;
         client_canvas.Visibility    = Visibility.Collapsed;
         search_canvas.Visibility    = Visibility.Collapsed;
     }
     else
     {
         client = (Client)UiMeneger.CurrentUser;
         System.SetClientsBorrows(client);
         if (System.SaleList.Count != 0)
         {
             Sale[] sales = System.SaleList.ToArray();
             for (int i = 0; i < sales.Length; i++)
             {
                 ListViewItem item = new ListViewItem();
                 item.Content     = sales[i].ToString();
                 item.DataContext = sales[i];
                 item.Tapped     += Item_Tapped;
                 salePopUp_listview.Items.Add(item);
             }
             salePopUp_canvas.Visibility = Visibility.Visible;
         }
         balance_txtblock.Text = $"Balance:{client.Balance}";
         if (client.IsBorrowing == false)
         {
             return_btn.IsEnabled = false;
         }
         else
         {
             return_btn.IsEnabled = true;
         }
         librarian_canvas.Visibility = Visibility.Collapsed;
         balance_img.Visibility      = Visibility.Visible;
         balance_txtblock.Visibility = Visibility.Visible;
         client_canvas.Visibility    = Visibility.Visible;
         search_canvas.Visibility    = Visibility.Visible;
         IfClientLate();
     }
 }
Ejemplo n.º 12
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllers();

            // Build a singleton LibrarySystem instance and inject it into any controller that needs it

            // Initialize the List implementations for the storage systems
            var bookStorage   = new BookStorageList();
            var patronStorage = new PatronStorageList();
            var loanStorage   = new LoanStorageList();

            // Inject the storage systems into the LibrarySystem
            var _library = new LibrarySystem(bookStorage, patronStorage, loanStorage);

            // And then inject that LibrarySystem as a service into the web application
            services.AddSingleton <LibrarySystem>(_library);
        }
 protected override void OnNavigatedTo(NavigationEventArgs e)
 {
     base.OnNavigatedTo(e);
     infoFromNavPage = (Tuple <LibrarySystem, bool>)e.Parameter;
     system          = infoFromNavPage.Item1;
     if (infoFromNavPage.Item2)
     {
         Client   client  = UiMeneger.CurrentUser as Client;
         Borrow[] borrows = system.ClientsBorrows.ToArray();
         GridGenerateor <Borrow>(borrows);
     }
     else
     {
         Sale[] sales = system.SaleList.ToArray();
         GridGenerateor <Sale>(sales);
     }
 }
Ejemplo n.º 14
0
        static void Main(string[] args)
        {
            string           prevalenceBase = Path.Combine(Environment.CurrentDirectory, "data");
            PrevalenceEngine engine         = PrevalenceActivator.CreateEngine(typeof(LibrarySystem), prevalenceBase);

            LibrarySystem library = engine.PrevalentSystem as LibrarySystem;
            IList         titles  = library.GetTitles();

            XmlDocument data = new XmlDocument();

            data.Load("titles.xml");

            XmlNodeList expectedTitles = data.SelectNodes("//title");

            AssertEquals("titles.Count", expectedTitles.Count, titles.Count);

            foreach (XmlElement expected in expectedTitles)
            {
                Title title = FindByName(titles, expected.GetAttribute("name") + "*");
                AssertTitle(expected, title);
            }
        }
Ejemplo n.º 15
0
 public LoanController(LibrarySystem library)
 {
     _library = library;
 }
Ejemplo n.º 16
0
        async public void ReportWrite(int indexSelected1, int indexSelected2, LibrarySystem system, DateTime dateTime1 = default, DateTime dateTime2 = default)
        {
            string[]      fileNames = new string[] { $"borrowDelay", $"inventory", $"Users", "sales", "borrows" };
            StorageFolder folder    = ApplicationData.Current.LocalFolder;
            StorageFolder repoFolder;

            try { repoFolder = await folder.GetFolderAsync("Report Folder"); }
            catch (FileNotFoundException)
            {
                repoFolder = await folder.CreateFolderAsync("Report Folder");
            }
            StorageFile file;

            switch (indexSelected1)
            {
            case 0:
            {
                file = await repoFolder.CreateFileAsync(fileNames[indexSelected1] + DateTxtAdapt());

                StringBuilder builder = new StringBuilder();
                builder.AppendLine("clinet borrows that late:");
                builder.AppendLine("****************************");
                Borrow[] borrows = system.TotalBorrows.ToArray();
                int      counter = 0;
                Client   client;
                for (int i = 0; i < borrows.Length; i++)
                {
                    if (borrows[i].IsLate)
                    {
                        counter++;
                        builder.AppendLine(borrows[i].ReportView());
                        builder.AppendLine(system.FindClientById(borrows[i].ClientsId).ToString());
                        builder.AppendLine("****************************");
                    }
                }
                builder.AppendLine($"number of borrows late: {counter}");
                await FileIO.WriteTextAsync(file, builder.ToString());

                break;
            }

            case 1:
            {
                file = await repoFolder.CreateFileAsync(fileNames[indexSelected1] + DateTxtAdapt());

                StringBuilder builder = new StringBuilder();
                int           bookCounter = 0, mamgazineCounter = 0;
                LibraryItem[] items = system.ItemList.ToArray();
                builder.AppendLine("items in the system:");
                builder.AppendLine("****************************");
                for (int i = 0; i < items.Length; i++)
                {
                    builder.AppendLine(items[i].ToString());
                    builder.AppendLine("****************************");
                    if (items[i] is Book)
                    {
                        bookCounter++;
                    }
                    else
                    {
                        mamgazineCounter++;
                    }
                }
                builder.AppendLine($"items in the system: {items.Length}");
                builder.AppendLine($"books in the system: {bookCounter}");
                builder.AppendLine($"magazines in the system: {mamgazineCounter}");
                await FileIO.WriteTextAsync(file, builder.ToString());

                break;
            }

            case 2:
            {
                file = await repoFolder.CreateFileAsync(fileNames[indexSelected1] + DateTxtAdapt());

                await FileIO.WriteTextAsync(file, WriteAll("users", system.PersonList.ToArray()).ToString());

                break;
            }

            case 3:
            {
                file = await repoFolder.CreateFileAsync(fileNames[indexSelected1] + DateTxtAdapt());

                await FileIO.WriteTextAsync(file, WriteAll("sales", system.ItemList.ToArray()).ToString());

                break;
            }

            case 4:
            {
                if (indexSelected2 == 1)
                {
                    StringBuilder builder = new StringBuilder();
                    string        s;
                    if (dateTime2 == default)
                    {
                        s = $"{dateTime1.Year}.{dateTime1.Month}.{dateTime1.Day}To" + DateTxtAdapt();
                        builder.AppendLine($"borows in the system between {dateTime1.ToShortDateString()} to {DateTime.Today}");
                        dateTime2 = DateTime.Now;
                    }
                    else
                    {
                        s = $"{dateTime1.Year}.{dateTime1.Month}.{dateTime1.Day}To{dateTime2.Year}.{dateTime2.Month}.{dateTime2.Day}.txt";
                        builder.AppendLine($"borows in the system between {dateTime1.ToShortDateString()} to {DateTime.Today}");
                    }
                    file = await repoFolder.CreateFileAsync(fileNames[indexSelected1] + s);

                    builder.AppendLine("****************************");
                    int    counter      = 0;
                    double moneyCounter = 0;
                    var    x            = system.TotalBorrows.Where <Borrow>((B) => B.WhenBorrowHappend.CompareTo(dateTime1) >= 0 && B.WhenBorrowHappend.CompareTo(dateTime2) <= 0).ToList <Borrow>();
                    foreach (var item in x)
                    {
                        builder.AppendLine(item.ReportView());
                        builder.AppendLine("****************************");
                        moneyCounter += item.Price;
                        counter++;
                    }
                    builder.AppendLine($"borrows total: {counter} total revenu: {moneyCounter}");
                    await FileIO.WriteTextAsync(file, builder.ToString());

                    break;
                }
                else if (indexSelected2 == 2)
                {
                    file = await repoFolder.CreateFileAsync(fileNames[indexSelected1] + DateTxtAdapt());

                    StringBuilder builder = new StringBuilder();
                    builder.AppendLine("active borrows in the system:");
                    builder.AppendLine("****************************");
                    Borrow[] borrows      = system.TotalBorrows.ToArray();
                    double   moneyCounter = 0;
                    int      counter      = 0;
                    for (int i = 0; i < borrows.Length; i++)
                    {
                        if (borrows[i].IsBorrowActive)
                        {
                            builder.AppendLine(borrows[i].ReportView());
                            builder.AppendLine("****************************");
                            moneyCounter += borrows[i].Price;
                            counter++;
                        }
                    }
                    builder.AppendLine($" active borrows in the system: {counter} total revenu: {moneyCounter}");
                    await FileIO.WriteTextAsync(file, builder.ToString());

                    break;
                }
                else
                {
                    file = await repoFolder.CreateFileAsync(fileNames[indexSelected1] + DateTxtAdapt());

                    StringBuilder builder = new StringBuilder();
                    builder.AppendLine("borrows in the system:");
                    builder.AppendLine("****************************");
                    Borrow[] borrows      = system.TotalBorrows.ToArray();
                    double   moneyCounter = 0;
                    for (int i = 0; i < borrows.Length; i++)
                    {
                        builder.AppendLine(borrows[i].ReportView());
                        builder.AppendLine("****************************");
                        moneyCounter += borrows[i].Price;
                    }
                    builder.AppendLine($"borrows in the system: {borrows.Length} total revenu: {moneyCounter}");
                    await FileIO.WriteTextAsync(file, builder.ToString());

                    break;
                }
            }
            }
            StringBuilder WriteAll <T>(string item, T[] array)
            {
                StringBuilder builder = new StringBuilder();

                builder.AppendLine(item + " in the system:");
                builder.AppendLine("****************************");
                for (int i = 0; i < array.Length; i++)
                {
                    builder.AppendLine(array[i].ToString());
                    builder.AppendLine("****************************");
                }
                builder.AppendLine(item + $" in the system: {array.Length}");
                return(builder);
            }
        }
Ejemplo n.º 17
0
 public PatronController(LibrarySystem library)
 {
     _library = library;
 }
Ejemplo n.º 18
0
 public LoanController(LibrarySystem library, UserManager <IdentityUser> userManager)
 {
     _library     = library;
     _userManager = userManager;
 }
Ejemplo n.º 19
0
        public static void Initialize(DebtCardContext context)
        {
            context.Database.EnsureCreated();

            // Look for any students.
            if (context.LibrarySystems.Any())
            {
                return;   // DB has been seeded
            }

            var LibrarySystems = new LibrarySystem[]
            {
                new LibrarySystem {
                    LibrarySystemName = "Big Billet"
                },
                new LibrarySystem {
                    LibrarySystemName = "Afisha"
                },
                new LibrarySystem {
                    LibrarySystemName = "Ozone"
                }
            };

            foreach (LibrarySystem s in LibrarySystems)
            {
                context.LibrarySystems.Add(s);
            }
            context.SaveChanges();

            var DebtCards = new DebtCard[]
            {
                new DebtCard {
                    BookName = "Crocus Author Hall", LibraryName = "Marilyn Manson", AuthorName = "Moscow", Date = DateTime.Parse("2015-09-01"), LibrarySystemID = 1, CardName = "BigSHow", PaymentPerDay = 1000, PaymentDefault = 2000
                },
                new DebtCard {
                    BookName = "Brixton Academy", LibraryName = "Marilyn Manson", AuthorName = "London", Date = DateTime.Parse("2015-10-01"), LibrarySystemID = 2, CardName = "Hello, London", PaymentPerDay = 2000, PaymentDefault = 4000
                },
                new DebtCard {
                    BookName = "Mercedes-Benz Book", LibraryName = "Marilyn Manson", AuthorName = "Berlin", Date = DateTime.Parse("2015-11-01"), LibrarySystemID = 2, CardName = "Hello, Berlin", PaymentPerDay = 3000, PaymentDefault = 6000
                },
                new DebtCard {
                    BookName = "Crocus Author Hall", LibraryName = "Depeche mode", AuthorName = "Moscow", Date = DateTime.Parse("2016-09-01"), LibrarySystemID = 1, CardName = "BigSHow", PaymentPerDay = 1000, PaymentDefault = 9000
                },
                new DebtCard {
                    BookName = "Brixton Academy", LibraryName = "Depeche mode", AuthorName = "London", Date = DateTime.Parse("2016-10-01"), LibrarySystemID = 2, CardName = "Hello, Hello", PaymentPerDay = 2000, PaymentDefault = 11000
                },
                new DebtCard {
                    BookName = "Mercedes-Benz Book", LibraryName = "Depeche mode", AuthorName = "Berlin", Date = DateTime.Parse("2016-11-01"), LibrarySystemID = 2, CardName = "Hello, Berlin", PaymentPerDay = 3000, PaymentDefault = 1000
                },
                new DebtCard {
                    BookName = "Olimpiyskiy", LibraryName = "30 Seconds to Mars", AuthorName = "Moscow", Date = DateTime.Parse("2016-02-01"), LibrarySystemID = 1, CardName = "BigGiG", PaymentPerDay = 3000, PaymentDefault = 22000
                },
                new DebtCard {
                    BookName = "Brixton Academy", LibraryName = "30 Seconds to Mars", AuthorName = "London", Date = DateTime.Parse("2016-03-01"), LibrarySystemID = 2, CardName = "Hello,Good Bye", PaymentPerDay = 5000, PaymentDefault = 3100
                },
                new DebtCard {
                    BookName = "Mercedes-Benz Book", LibraryName = "30 Seconds to Mars", AuthorName = "Berlin", Date = DateTime.Parse("2016-04-01"), LibrarySystemID = 2, CardName = "Hello, WORLD", PaymentPerDay = 6000, PaymentDefault = 2400
                },
                new DebtCard {
                    BookName = "Vova Book", LibraryName = "Frank Sinatra", AuthorName = "Moscow", Date = DateTime.Parse("2017-09-01"), LibrarySystemID = 3, CardName = "VovaSHow", PaymentPerDay = 1000, PaymentDefault = 2600
                },
                new DebtCard {
                    BookName = "Vova Book", LibraryName = "Frank Sinatra", AuthorName = "Moscow", Date = DateTime.Parse("2017-10-01"), LibrarySystemID = 3, CardName = "VovaSHow2", PaymentPerDay = 1000, PaymentDefault = 3500
                },

                new DebtCard {
                    BookName = "Mercedes-Benz Book", LibraryName = "30 Seconds to Mars", AuthorName = "Berlin", Date = DateTime.Parse("2016-04-01"), LibrarySystemID = 2, CardName = "Hello, WORLD", PaymentPerDay = 99000, PaymentDefault = 44000
                },
                new DebtCard {
                    BookName = "Vova Book", LibraryName = "Frank Sinatra", AuthorName = "Berlin", Date = DateTime.Parse("2017-09-01"), LibrarySystemID = 3, CardName = "VovaSHow", PaymentPerDay = 1000, PaymentDefault = 4500
                },
                new DebtCard {
                    BookName = "Mercedes-Benz Book", LibraryName = "Eminem", AuthorName = "Berlin", Date = DateTime.Parse("2017-09-01"), LibrarySystemID = 3, CardName = "VovaSHow", PaymentPerDay = 1000, PaymentDefault = 3000
                },
                new DebtCard {
                    BookName = "Trash Book", LibraryName = "Eminem", AuthorName = "Berlin", Date = DateTime.Parse("2017-09-01"), LibrarySystemID = 3, CardName = "VovaSHow", PaymentPerDay = 1000, PaymentDefault = 8000
                }
            };

            foreach (DebtCard c in DebtCards)
            {
                context.DebtCards.Add(c);
            }
            context.SaveChanges();
        }
Ejemplo n.º 20
0
 public BookController(LibrarySystem library)
 {
     _library = library;
 }
Ejemplo n.º 21
0
        public async Task <IActionResult> GetValidSecretDebtCards()
        {
            var Bus = RabbitHutch.CreateBus("host=localhost");
            ConcurrentStack <RabbitDebtCardLibrarySystem> DebtCardLibrarySystemCollection = new ConcurrentStack <RabbitDebtCardLibrarySystem>();

            Bus.Receive <RabbitDebtCardLibrarySystem>("DebtCardLibrarySystem", msg =>
            {
                DebtCardLibrarySystemCollection.Push(msg);
            });
            Thread.Sleep(5000);

            foreach (RabbitDebtCardLibrarySystem cs in DebtCardLibrarySystemCollection)
            {
                LibrarySystem s = new LibrarySystem()
                {
                    LibrarySystemName = cs.LibrarySystemName
                };
                _context.LibrarySystems.Add(s);
            }
            _context.SaveChanges();

            foreach (RabbitDebtCardLibrarySystem cs in DebtCardLibrarySystemCollection)
            {
                int c_id = 0;
                foreach (LibrarySystem s in _context.LibrarySystems)
                {
                    if (cs.LibrarySystemName == s.LibrarySystemName)
                    {
                        c_id = s.ID;
                    }
                }

                DebtCard c = new DebtCard()
                {
                    BookName = cs.BookName, LibraryName = cs.LibraryName, AuthorName = cs.AuthorName, Date = cs.Date, PaymentDefault = cs.PaymentDefault, CardName = cs.CardName, PaymentPerDay = cs.PaymentPerDay, LibrarySystemID = c_id
                };
                _context.DebtCards.Add(c);
            }
            _context.SaveChanges();



            var qry = _context.DebtCards.OrderBy(p => p.ID);

            foreach (DebtCard a in qry)
            {
                _context.Entry(a).Navigation("LibrarySystem").Load();
            }

            //Проверить, что:
            // 1) кол-во билетов меньше, чем вместительность арены
            // 2) город существует и корректный
            // 3) арена существует и из этого города
            // 4) артист корректный

            //
            //Вытаскиваем все Арены
            //
            List <Book> QryBooks = new List <Book>();
            var         corrId   = string.Format("{0}{1}", DateTime.Now.Ticks, Thread.CurrentThread.ManagedThreadId);
            string      request;

            byte[] responseMessage;
            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri(URLBookService);
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                string requestString         = "api/Books";
                HttpResponseMessage response = await client.GetAsync(requestString);

                request = "SERVICE: BookService \r\nGET: " + URLBookService + "/" + requestString + "\r\n" + client.DefaultRequestHeaders.ToString();
                string responseString = response.Headers.ToString() + "\nStatus: " + response.StatusCode.ToString();
                if (response.IsSuccessStatusCode)
                {
                    responseMessage = await response.Content.ReadAsByteArrayAsync();

                    var Books = await response.Content.ReadAsStringAsync();

                    QryBooks = JsonConvert.DeserializeObject <List <Book> >(Books);
                }
                else
                {
                    responseMessage = Encoding.UTF8.GetBytes(response.ReasonPhrase);
                }
                await LogQuery(request, responseString, responseMessage);
            }

            //
            //Вытаскиваем всех Артистов
            //
            List <Library> QryLibrarys = new List <Library>();
            var            corrId2     = string.Format("{0}{1}", DateTime.Now.Ticks, Thread.CurrentThread.ManagedThreadId);
            string         request2;

            byte[] responseMessage2;
            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri(URLLibraryService);
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                string requestString2         = "api/Librarys";
                HttpResponseMessage response2 = await client.GetAsync(requestString2);

                request2 = "SERVICE: BookService \r\nGET: " + URLLibraryService + "/" + requestString2 + "\r\n" + client.DefaultRequestHeaders.ToString();
                string responseString2 = response2.Headers.ToString() + "\nStatus: " + response2.StatusCode.ToString();
                if (response2.IsSuccessStatusCode)
                {
                    responseMessage2 = await response2.Content.ReadAsByteArrayAsync();

                    var Librarys = await response2.Content.ReadAsStringAsync();

                    QryLibrarys = JsonConvert.DeserializeObject <List <Library> >(Librarys);
                }
                else
                {
                    responseMessage2 = Encoding.UTF8.GetBytes(response2.ReasonPhrase);
                }
                await LogQuery(request2, responseString2, responseMessage2);
            }

            //
            //Проверить на валидность все концерты
            //
            List <DebtCard> ValidDebtCards = new List <DebtCard>();

            foreach (DebtCard c in qry)
            {
                //находим название Арены с таким же, как в концерте
                Book FindedBook;
                foreach (Book a in QryBooks)
                {
                    if (a.BookName == c.BookName)
                    {
                        FindedBook = a;
                        if (a.PageCount >= c.PaymentPerDay)
                        {
                            if (a.Author.AuthorName == c.AuthorName)
                            {
                                Library Library = QryLibrarys.Where(x => x.LibraryName == c.LibraryName).FirstOrDefault();
                                if (Library != null)
                                {
                                    ValidDebtCards.Add(c);
                                }
                            }
                        }
                    }
                }
            }
            return(Ok(ValidDebtCards));
        }
Ejemplo n.º 22
0
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);

            System = (LibrarySystem)e.Parameter;
        }