예제 #1
0
        public async Task <IActionResult> PutDebtCard([FromRoute] int id, [FromBody] DebtCard DebtCard)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

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

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

            try
            {
                await _context.SaveChangesAsync();

                return(Accepted(DebtCard));
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!DebtCardExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }
        }
예제 #2
0
        public bool UpdateDebtCards(DebtCard debtCards)
        {
            context.Entry(debtCards).State = System.Data.Entity.EntityState.Modified;

            var exitingAccomodationPackage = context.DebtCards.Find(debtCards.ID);

            context.Entry(exitingAccomodationPackage).CurrentValues.SetValues(debtCards);

            return(context.SaveChanges() > 0);
        }
예제 #3
0
        public async Task <IActionResult> PostDebtCard([FromBody] DebtCard DebtCard)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            _context.DebtCards.Add(DebtCard);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetDebtCard", new { id = DebtCard.ID }, DebtCard));
        }
예제 #4
0
        public async Task <IActionResult> PostConcerte([FromBody] DebtCard concerte)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            _context.DebtCard.Add(concerte);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetConcerte", new { id = concerte.ID }, concerte));
        }
예제 #5
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));
        }
예제 #6
0
        public bool DeleteDebtCards(DebtCard debtCards)
        {
            context.Entry(debtCards).State = System.Data.Entity.EntityState.Deleted;

            return(context.SaveChanges() > 0);
        }
예제 #7
0
        public bool SaveDebtCards(DebtCard debtCards)
        {
            context.DebtCards.Add(debtCards);

            return(context.SaveChanges() > 0);
        }
예제 #8
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();
        }
        public JsonResult Action(DebtCardsActionModel model)
        {
            JsonResult json = new JsonResult();

            var result = false;

            if (model.ID > 0) //we are trying to edit a record
            {
                var debtCards = debtCardServices.GetDebtCardsByID(model.ID);

                debtCards.Name              = model.Name;
                debtCards.Limit             = model.Limit;
                debtCards.PlannedTimeRefund = model.PlannedTimeRefund;

                result = debtCardServices.UpdateDebtCards(debtCards);

                ScheduledTransaction          scheduledTransaction          = new ScheduledTransaction();
                ScheduledTransactionsServices scheduledTransactionsServices = new ScheduledTransactionsServices();
                BalanceListingModel           balanceModel      = new BalanceListingModel();
                BalanceController             balanceController = new BalanceController();

                balanceModel = balanceController.GetBalances();

                DebtCardsListingModel debtsCardModel = new DebtCardsListingModel();
                debtsCardModel.DebtCards    = debtCardServices.GetAllDebtCards();
                debtsCardModel.Transactions = transactionsServices.SearchTransactions("", null, 0, "", 0, null);

                foreach (var debts in debtsCardModel.DebtCards)
                {
                    float remaning = debts.Limit;
                    foreach (var transactions in debtsCardModel.Transactions)
                    {
                        if (transactions.BudgetsName == debts.Name)
                        {
                            remaning    = remaning - transactions.Price;
                            debts.Price = remaning;
                        }
                    }
                    scheduledTransaction.Price = debts.Price;
                }

                scheduledTransaction.TransactionName = "Spłata karty";
                scheduledTransaction.Recipient       = "Bank";
                scheduledTransaction.Data            = model.PlannedTimeRefund;

                scheduledTransactionsServices.UpdateScheduledTransaction(scheduledTransaction);
            }
            else //we are trying to create a record
            {
                DebtCard debtCards = new DebtCard();

                debtCards.Name              = model.Name;
                debtCards.Limit             = model.Limit;
                debtCards.PlannedTimeRefund = model.PlannedTimeRefund;

                result = debtCardServices.SaveDebtCards(debtCards);

                //Create Scheduled Transactions
                ScheduledTransaction          scheduledTransaction          = new ScheduledTransaction();
                ScheduledTransactionsServices scheduledTransactionsServices = new ScheduledTransactionsServices();
                BalanceListingModel           balanceModel      = new BalanceListingModel();
                BalanceController             balanceController = new BalanceController();

                balanceModel = balanceController.GetBalances();
                DebtCardsListingModel debtsCardModel = new DebtCardsListingModel();
                debtsCardModel.DebtCards    = debtCardServices.GetAllDebtCards();
                debtsCardModel.Transactions = transactionsServices.SearchTransactions("", null, 0, "", 0, null);
                foreach (var debts in debtsCardModel.DebtCards)
                {
                    float remaning = debts.Limit;
                    foreach (var transactions in debtsCardModel.Transactions)
                    {
                        if (transactions.BudgetsName == debts.Name)
                        {
                            remaning    = remaning - transactions.Price;
                            debts.Price = remaning;
                        }
                    }
                    if (debts.Price == 0)
                    {
                        scheduledTransaction.Price = debts.Price;
                    }
                    else
                    {
                        scheduledTransaction.Price = debts.Price;
                    }
                }

                scheduledTransaction.TransactionName = "Spłata karty";
                scheduledTransaction.Recipient       = "Bank";
                scheduledTransaction.Data            = model.PlannedTimeRefund;

                scheduledTransactionsServices.SaveScheduledTransaction(scheduledTransaction);
            }

            if (result)
            {
                json.Data = new { Success = true };
            }
            else
            {
                json.Data = new { Success = false, Message = "Unable to perform action on DebtCard." };
            }

            return(json);
        }