Example #1
0
 public Post(
     int postId,
     int userId,
     int textBookId,
     ActionBy actionBy,
     int price,
     BookCondition bookCondition,
     int isTransacting,
     int isActive,
     int isDeleted,
     DateTime createdDate,
     DateTime modifiedDate)
 {
     PostId        = postId;
     UserId        = userId;
     TextBookId    = textBookId;
     ActionBy      = actionBy;
     Price         = price;
     BookCondition = bookCondition;
     IsTransacting = isTransacting;
     IsActive      = isActive;
     IsDeleted     = isDeleted;
     CreatedDate   = createdDate;
     ModifiedDate  = modifiedDate;
 }
        public void AddBookConditionTest()
        {
            BookCondition testBC = new BookCondition(new Book("Test Author", "1234567890", "Test Title", "2019"));

            dataRepository.AddBookCondition(testBC);
            Assert.AreEqual(testBC, dataRepository.GetBookCondition(0));
        }
Example #3
0
 public Post(
         int postId,
         int userId,
         int textBookId,
         ActionBy actionBy,
         int price,
         BookCondition bookCondition,
         int isTransacting,
         int isActive,
         int isDeleted,
         DateTime createdDate,
         DateTime modifiedDate)
 {
     PostId = postId;
     UserId = userId;
     TextBookId = textBookId;
     ActionBy = actionBy;
     Price = price;
     BookCondition = bookCondition;
     IsTransacting = isTransacting;
     IsActive = isActive;
     IsDeleted = isDeleted;
     CreatedDate = createdDate;
     ModifiedDate = modifiedDate;
 }
        public async Task <IActionResult> PutBookCondition([FromRoute] int id, [FromBody] BookCondition bookCondition)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != bookCondition.BookConditionId)
            {
                return(BadRequest());
            }

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

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!BookConditionExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Example #5
0
        public async Task <IActionResult> Edit(int id, [Bind("BookConditionId,Condition")] BookCondition bookCondition)
        {
            if (id != bookCondition.BookConditionId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(bookCondition);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!BookConditionExists(bookCondition.BookConditionId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(bookCondition));
        }
Example #6
0
        public async Task <IActionResult> Create([Bind("BookConditionId,Condition")] BookCondition bookCondition)
        {
            if (ModelState.IsValid)
            {
                _context.Add(bookCondition);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(bookCondition));
        }
        public async Task <IActionResult> PostBookCondition([FromBody] BookCondition bookCondition)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            _context.BookCondition.Add(bookCondition);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetBookCondition", new { id = bookCondition.BookConditionId }, bookCondition));
        }
Example #8
0
        // POST: odata/BookConditions
        public IHttpActionResult Post(BookCondition bookCondition)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.BookConditions.Add(bookCondition);
            db.SaveChanges();

            return(Created(bookCondition));
        }
Example #9
0
 public void UpdateBookCondition(List <string> barcodes, BookCondition bookCondition, DateTime damLostDate)
 {
     foreach (var barcode in barcodes)
     {
         var book = Container.Books.Where(x => x.Barcode == barcode).FirstOrDefault();
         if (book != null)
         {
             book.BookCondition_Id = bookCondition.Id;
             book.DamLostDate      = damLostDate;
             Container.UpdateObject(book);
         }
     }
     Container.SaveChanges();
 }
Example #10
0
        // DELETE: odata/BookConditions(5)
        public IHttpActionResult Delete([FromODataUri] int key)
        {
            BookCondition bookCondition = db.BookConditions.Find(key);

            if (bookCondition == null)
            {
                return(NotFound());
            }

            db.BookConditions.Remove(bookCondition);
            db.SaveChanges();

            return(StatusCode(HttpStatusCode.NoContent));
        }
        public void DeleteBookConditionByBCTest()
        {
            List <BookCondition> testList = MakeBookConditionList();

            foreach (var bc in testList)
            {
                dataRepository.AddBookCondition(bc);
            }
            BookCondition testBC = dataRepository.GetBookCondition(0);

            dataRepository.DeleteBookCondition(testBC);

            dataRepository.GetBook(0);
        }
        public void SearchAvailableBooksTest()
        {
            Random rand = new Random();

            dataService = new DataService(new DataRepository(new DataContext(), new RandomFiller(5, 5)));
            dataService.Fill();
            BookCondition randomBC = dataService.GetBookCondition(rand.Next(5));

            dataService.CreateEvent(Event.Type.Borrow, randomBC, dataService.GetClient(rand.Next(5)));
            foreach (var book in dataService.SearchAvailableBooks())
            {
                Assert.AreNotSame(randomBC.Book, book);
            }
        }
        public void UpdateBookConditionTest()
        {
            List <BookCondition> testList = MakeBookConditionList();

            foreach (var bc in testList)
            {
                dataRepository.AddBookCondition(bc);
            }
            BookCondition testBC   = new BookCondition(new Book("Test 3", "1234567890", "Test 3", "1999"));
            int           bcNumber = 0;

            dataRepository.UpdateBookCondition(bcNumber, testBC);

            Assert.AreEqual(testBC, dataRepository.GetBookCondition(bcNumber));
        }
Example #14
0
        public static Post getPost(int postId)
        {
            Post post = null;

            try
            {
                DataAccess da = new DataAccess();
                DataTable  dt = da.select(String.Format("PostId = '{0}' AND IsDeleted = 0", postId), "Posts", NumRows: 1);

                if (dt != null && dt.Rows.Count > 0)
                {
                    DataRow       row           = dt.Rows[0];
                    int           profileId     = Convert.ToInt32(row["UserId"]);
                    int           textbookId    = Convert.ToInt32(row["TextBookId"]);
                    ActionBy      actionBy      = (ActionBy)Convert.ToInt32(row["ActionBy"]);
                    int           price         = Convert.ToInt32(row["Price"]);
                    BookCondition bookCondition = (BookCondition)Convert.ToInt32(row["BookCondition"]);
                    int           isTransacting = Convert.ToInt32(row["IsTransacting"]);
                    int           isActive      = Convert.ToInt32(row["IsActive"]);
                    int           isDeleted     = Convert.ToInt32(row["IsDeleted"]);
                    DateTime      createdDate   = (DateTime)row["CreatedDate"];
                    DateTime      modifiedDate  = (DateTime)row["ModifiedDate"];

                    post = new Post(
                        postId,
                        profileId,
                        textbookId,
                        actionBy,
                        price,
                        bookCondition,
                        isTransacting,
                        isActive,
                        isDeleted,
                        createdDate,
                        modifiedDate
                        );
                }
            }
            catch (Exception ex)
            {
                Console.Write(ex.Message + "   " + ex.StackTrace);
            }

            return(post);
        }
Example #15
0
        public string GetConditionDescription(BookCondition cond)
        {
            switch (cond)
            {
            case BookCondition.New: return("New");

            case BookCondition.Fine: return("Fine");

            case BookCondition.VeryGood: return("Very Good");

            case BookCondition.Good: return("Good");

            case BookCondition.Fair: return("Fair");

            case BookCondition.Poor: return("Poor");

            default: return(string.Empty);
            }
        }
Example #16
0
        public IHttpActionResult Patch([FromODataUri] int key, Delta <BookCondition> patch)
        {
            Validate(patch.GetEntity());

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            BookCondition bookCondition = db.BookConditions.Find(key);

            if (bookCondition == null)
            {
                return(NotFound());
            }

            patch.Patch(bookCondition);

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!BookConditionExists(key))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(Updated(bookCondition));
        }
 public void ComplexTypesSerializationTest()
 {
     string        filename  = "complexTestWrite.txt";
     BookCondition bcOrig    = new BookCondition(new Book("A", "B", "C", "D"));
     Event         eventOrig = new Event(Event.Type.Borrow, bcOrig, new Client("X", "Y", "Z"));
     {
         Serializator ser = new Serializator();
         ser.Add(bcOrig);
         ser.Add(eventOrig);
         ser.SetFilename(filename);
         ser.Write();
     }
     {
         Serializator ser = new Serializator();
         ser.SetFilename(filename);
         ser.Read();
         BookCondition bcNew    = (BookCondition)ser.GetNext();
         Event         eventNew = (Event)ser.GetNext();
         Assert.AreEqual(bcOrig.ToString(), bcNew.ToString());
         Assert.AreEqual(eventOrig.ToString(), eventNew.ToString());
         Assert.AreSame(bcNew.Book, eventNew.BookCondition.Book);
         Assert.AreSame(bcNew, eventNew.BookCondition);
     }
 }
Example #18
0
 public JsonResult UpdateBookCondition(List <string> barcodes, BookCondition bookCondition, DateTime damLostDate)
 {
     bookRepository.UpdateBookCondition(barcodes, bookCondition, damLostDate);
     return(Json(""));
 }
Example #19
0
        public static Post findMatchingPost(Post post)
        {
            Post matchingPost = null;

            try
            {
                var counterparty = post.ActionBy == ActionBy.Buyer ? ActionBy.Seller : ActionBy.Buyer;

                string query = String.Format("UserId <> {0} AND TextBookId = {1} AND ActionBy = {2} " +
                                             "AND IsTransacting = 0 AND IsActive = 1 AND IsDeleted = 0",
                                             post.UserId,
                                             post.TextBookId,
                                             (int)counterparty
                                             );

                List <SortColumn> sortColumns = new List <SortColumn>();
                if (post.ActionBy == ActionBy.Buyer) //buyer
                {
                    query += String.Format("AND Price <= {0} AND BookCondition >= {1}",
                                           post.Price,
                                           (int)post.BookCondition
                                           );

                    sortColumns.Add(new SortColumn("Price", "ASC"));
                }
                else //seller
                {
                    query += String.Format("AND Price >= {0} AND BookCondition <= {1}",
                                           post.Price,
                                           (int)post.BookCondition
                                           );

                    sortColumns.Add(new SortColumn("Price", "DESC"));
                }

                DataAccess da = new DataAccess();
                DataTable  dt = da.select(query, "Posts", NumRows: 1, SortColumns: sortColumns);

                if (dt != null && dt.Rows.Count > 0)
                {
                    DataRow       row           = dt.Rows[0];
                    int           postId        = Convert.ToInt32(row["PostId"]);
                    int           profileId     = Convert.ToInt32(row["UserId"]);
                    int           textBookId    = Convert.ToInt32(row["TextBookId"]);
                    ActionBy      actionBy      = (ActionBy)Convert.ToInt32(row["ActionBy"]);
                    int           price         = Convert.ToInt32(row["Price"]);
                    BookCondition bookCondition = (BookCondition)Convert.ToInt32(row["BookCondition"]);
                    int           isTransacting = Convert.ToInt32(row["IsTransacting"]);
                    int           isActive      = Convert.ToInt32(row["IsActive"]);
                    int           isDeleted     = Convert.ToInt32(row["IsDeleted"]);
                    DateTime      createdDate   = (DateTime)row["CreatedDate"];
                    DateTime      modifiedDate  = (DateTime)row["ModifiedDate"];

                    matchingPost = new Post(
                        postId,
                        profileId,
                        textBookId,
                        actionBy,
                        price,
                        bookCondition,
                        isTransacting,
                        isActive,
                        isDeleted,
                        createdDate,
                        modifiedDate
                        );
                }
            }
            catch (Exception ex)
            {
                Console.Write(ex.Message + "   " + ex.StackTrace);
            }

            return(matchingPost);
        }