public static async Task ViewReturns()
        {
            try
            {
                using (IReturnBL ReturnBL = new ReturnBL())
                {
                    List <Return> onlineReturns = await ReturnBL.GetAllReturnsBL();

                    WriteLine("Returns:");
                    if (onlineReturns != null && onlineReturns.Count > 0)
                    {
                        WriteLine("#\tPurpose\tQuantityOfReturn\\tCreated\tModified");
                        int serialNo = 0;
                        foreach (var onlineReturn in onlineReturns)
                        {
                            serialNo++;
                            WriteLine($"{serialNo}\t{onlineReturn.Purpose}\t{onlineReturn.QuantityOfReturn}\t{onlineReturn.CreationDateTime}\t{onlineReturn.LastModifiedDateTime}");
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ExceptionLogger.LogException(ex);
                WriteLine(ex.Message);
            }
        }
Beispiel #2
0
 private void btnReturn_Click(object sender, EventArgs e)
 {
     try
     {
         if (Form_Validation() != string.Empty)
         {
             MessageBox.Show(Form_Validation(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
         }
         else
         {
             ReturnBL ReturnBL = new ReturnBL(s, r);
             loan.StudentId    = txtStudentId.Text;
             loan.DateReturned = DateTime.Now;
             if (ReturnBL.ReturnTransaction(txtStudentId.Text, resourcrId, DateTime.Now, (int)loanStatus))
             {
                 MessageBox.Show("Return worked!");
                 //loans.Remove(loanss);
             }
             else
             {
                 MessageBox.Show("Return failed");
             }
             ListsBL listsBL = new ListsBL();
             dgvCurrentLoans.DataSource = listsBL.GetLoans(s.StudentId);
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
Beispiel #3
0
        public async Task OnlineReturnProductNumberCanNotBeZero()
        {
            //Arrange
            ReturnBL onlineReturnBL = new ReturnBL();
            Return   onlineReturn   = new Return()
            {
                OrderNumber = 20, ProductNumber = 0, QuantityOfReturn = 5, Purpose = 0
            };
            bool   isAdded      = false;
            string errorMessage = null;

            //Act
            try
            {
                isAdded = await onlineReturnBL.AddReturnBL(onlineReturn);
            }
            catch (Exception ex)
            {
                isAdded      = false;
                errorMessage = ex.Message;
            }
            finally
            {
                //Assert
                Assert.IsFalse(isAdded, errorMessage);
            }
        }
Beispiel #4
0
        public async Task CustomerIDDoesNotExist()
        {
            //Arrange
            ReturnBL onlineReturnBL = new ReturnBL();
            Return   onlineReturn   = new Return()
            {
                OrderNumber = 20, ProductNumber = 4, QuantityOfReturn = 5, Purpose = 0
            };
            await onlineReturnBL.AddReturnBL(onlineReturn);

            bool   isDisplayed  = false;
            string errorMessage = null;

            //Act
            try
            {
                List <Return> onlineReturnList1 = await onlineReturnBL.GetOnlineReturnByCustomerIDBL(default(Guid));

                if (onlineReturnList1.Count < 1)
                {
                    isDisplayed = true;
                }
            }
            catch (Exception ex)
            {
                isDisplayed  = false;
                errorMessage = ex.Message;
            }
            finally
            {
                //Assert
                Assert.IsTrue(isDisplayed, errorMessage);
            }
        }
Beispiel #5
0
        public async Task OnlineReturnListCanNotBeEmpty()
        {
            //Arrange

            bool   isDisplayed  = false;
            string errorMessage = null;

            //Act
            try
            {
                ReturnBL      onlineReturnBL   = new ReturnBL();
                List <Return> onlineReturnList = await onlineReturnBL.GetAllReturnsBL();

                if (onlineReturnList.Count < 1)
                {
                    isDisplayed = true;
                }
            }
            catch (Exception ex)
            {
                isDisplayed  = false;
                errorMessage = ex.Message;
            }
            finally
            {
                //Assert
                Assert.IsFalse(isDisplayed, errorMessage);
            }
        }
Beispiel #6
0
        public async Task GetOnlineReturnByOnlineReturnIDBL()
        {
            //Arrange
            ReturnBL onlineReturnBL = new ReturnBL();
            Return   onlineReturn   = new Return()
            {
                OrderNumber = 20, ProductNumber = 4, QuantityOfReturn = 5, Purpose = 0
            };
            await onlineReturnBL.AddReturnBL(onlineReturn);

            bool   isDisplayed  = false;
            string errorMessage = null;

            //Act
            try
            {
                Return onlineReturn1 = await onlineReturnBL.GetOnlineReturnByOnlineReturnIDBL(onlineReturn.OnlineReturnID);

                if (onlineReturn.OnlineReturnID == onlineReturn1.OnlineReturnID)

                {
                    isDisplayed = true;
                }
            }
            catch (Exception ex)
            {
                isDisplayed  = false;
                errorMessage = ex.Message;
            }
            finally
            {
                //Assert
                Assert.IsTrue(isDisplayed, errorMessage);
            }
        }
Beispiel #7
0
        public async Task GetAllValidOnlineReturns()
        {
            //Arrange
            ReturnBL onlineReturnBL = new ReturnBL();
            Return   onlineReturn   = new Return()
            {
                OrderNumber = 20, ProductNumber = 4, QuantityOfReturn = 5, Purpose = PurposeOfReturn.DefectiveProduct
            };
            await onlineReturnBL.AddReturnBL(onlineReturn);

            bool   isDisplayed  = false;
            string errorMessage = null;

            //Act
            try
            {
                List <Return> onlineReturnList = await onlineReturnBL.GetAllReturnsBL();

                if (onlineReturnList.Count > 0)
                {
                    isDisplayed = true;
                }
            }
            catch (Exception ex)
            {
                isDisplayed  = false;
                errorMessage = ex.Message;
            }
            finally
            {
                //Assert
                Assert.IsTrue(isDisplayed, errorMessage);
            }
        }
Beispiel #8
0
        public async Task DeleteinValidOnlineReturnBL()
        {
            //Arrange
            ReturnBL onlineReturnBL = new ReturnBL();
            Return   onlineReturn   = new Return()
            {
                OrderNumber = 20, ProductNumber = 4, QuantityOfReturn = 5, Purpose = 0
            };
            await onlineReturnBL.AddReturnBL(onlineReturn);

            bool   isDeleted    = false;
            string errorMessage = null;

            //Act
            try
            {
                isDeleted = await onlineReturnBL.DeleteOnlineReturnBL(default(Guid));
            }
            catch (Exception ex)
            {
                isDeleted    = false;
                errorMessage = ex.Message;
            }
            finally
            {
                //Assert
                Assert.IsFalse(isDeleted, errorMessage);
            }
        }
Beispiel #9
0
        public async Task OnlineReturnIDDoesNotExist()
        {
            //Arrange
            ReturnBL onlineReturnBL = new ReturnBL();
            Return   onlineReturn1  = new Return()
            {
                OrderNumber = 20, ProductNumber = 4, QuantityOfReturn = 5, Purpose = 0
            };
            await onlineReturnBL.AddReturnBL(onlineReturn1);

            Return onlineReturn2 = new Return()
            {
                OnlineReturnID = default(Guid), OrderNumber = 20, ProductNumber = 4, QuantityOfReturn = 5, Purpose = 0
            };
            bool   isUpdated    = false;
            string errorMessage = null;

            //Act
            try
            {
                isUpdated = await onlineReturnBL.UpdateReturnBL(onlineReturn2);
            }
            catch (Exception ex)
            {
                isUpdated    = false;
                errorMessage = ex.Message;
            }
            finally
            {
                //Assert
                Assert.IsFalse(isUpdated, errorMessage);
            }
        }
Beispiel #10
0
        public async Task OnlineReturnPurposeCanNotBeNull3()
        {
            //Arrange
            ReturnBL onlineReturnBL = new ReturnBL();
            Return   onlineReturn1  = new Return()
            {
                OrderNumber = 20, ProductNumber = 4, QuantityOfReturn = 5, Purpose = PurposeOfReturn.DefectiveProduct
            };
            await onlineReturnBL.AddReturnBL(onlineReturn1);

            Return onlineReturn2 = new Return()
            {
                OnlineReturnID = onlineReturn1.OnlineReturnID, OrderNumber = 20, ProductNumber = 4, QuantityOfReturn = 5, Purpose = PurposeOfReturn.WrongProductShipped
            };
            bool   isUpdated    = false;
            string errorMessage = null;

            //Act
            try
            {
                isUpdated = await onlineReturnBL.UpdateReturnBL(onlineReturn2);
            }
            catch (Exception ex)
            {
                isUpdated    = false;
                errorMessage = ex.Message;
            }
            finally
            {
                //Assert
                Assert.IsFalse(isUpdated, errorMessage);
            }
        }
Beispiel #11
0
        public async Task OnlineReturnPurposeCanNotBeNull1()
        {
            //Arrange
            ReturnBL onlineReturnBL = new ReturnBL();
            Return   onlineReturn   = new Return()
            {
                OrderNumber = 20, ProductNumber = 4, QuantityOfReturn = 5, Purpose = PurposeOfReturn.UnsatiSfactoryProduct
            };
            bool   isAdded      = false;
            string errorMessage = null;

            //Act
            try
            {
                isAdded = await onlineReturnBL.AddReturnBL(onlineReturn);
            }
            catch (Exception ex)
            {
                isAdded      = false;
                errorMessage = ex.Message;
            }
            finally
            {
                //Assert
                Assert.IsTrue(isAdded, errorMessage);
            }
        }
        public static async Task DeleteReturn()
        {
            try
            {
                using (IReturnBL ReturnBL = new ReturnBL())
                {
                    Write("OnlineReturn #: ");
                    bool isNumberValid = int.TryParse(ReadLine(), out int serialNo);
                    if (isNumberValid)
                    {
                        serialNo--;
                        List <Return> onlineReturns = await ReturnBL.GetAllReturnsBL();

                        if (serialNo <= onlineReturns.Count - 1)
                        {
                            Return onlineReturn = onlineReturns[serialNo];
                            Write("Are you sure? (Y/N): ");
                            string confirmation = ReadLine();

                            if (confirmation.Equals("Y", StringComparison.OrdinalIgnoreCase))
                            {
                                bool isDeleted = await ReturnBL.DeleteOnlineReturnBL(onlineReturn.OnlineReturnID);

                                if (isDeleted)
                                {
                                    WriteLine("OnlineReturn Deleted");
                                }
                            }
                        }
                        else
                        {
                            WriteLine($"Invalid OnlineReturn #.\nPlease enter a number between 1 to {onlineReturns.Count}");
                        }
                    }
                    else
                    {
                        WriteLine($"Invalid number.");
                    }
                }
            }
            catch (Exception ex)
            {
                ExceptionLogger.LogException(ex);
                WriteLine(ex.Message);
            }
        }
        public static async Task UpdateOnlineReturn()
        {
            try
            {
                using (IReturnBL onlineReturnsBL = new ReturnBL())
                {
                    Write("OnlineReturn #: ");
                    bool isNumberValid = int.TryParse(ReadLine(), out int serial);
                    if (isNumberValid)
                    {
                        serial--;
                        List <Return> onlineReturns = await onlineReturnsBL.GetAllReturnsBL();

                        if (serial <= onlineReturns.Count - 1)
                        {
                            Return onlineReturn = onlineReturns[serial];
                            WriteLine("Purpose of Return:\n1.  UnsatiSfactoryProduct\n2. WrongProductShipped\n3.  WrongProductOrdered\n4. DefectiveProduct  ");
                            bool isPurposeValid = int.TryParse(ReadLine(), out int purpose);
                            Write("QuantityOfReturn: ");
                            onlineReturn.QuantityOfReturn = Convert.ToInt32(ReadLine());

                            bool isUpdated = await onlineReturnsBL.UpdateReturnBL(onlineReturn);

                            if (isUpdated)
                            {
                                WriteLine("OnlineReturn Updated");
                            }
                        }
                        else
                        {
                            WriteLine($"Invalid OnlineReturn #.\nPlease enter a number between 1 to {onlineReturns.Count}");
                        }
                    }
                    else
                    {
                        WriteLine($"Invalid number.");
                    }
                }
            }
            catch (Exception ex)
            {
                ExceptionLogger.LogException(ex);
                WriteLine(ex.Message);
            }
        }
        public static async Task AddReturn()
        {
            Return             onlineReturn  = new Return();
            List <OrderDetail> matchingOrder = new List <OrderDetail>();

            WriteLine("Enter the order number which you want to return");
            double orderToBeReturned = double.Parse(Console.ReadLine());

            WriteLine("Entered Number is: " + orderToBeReturned);
            try
            {
                using (IOrderBL orderBL = new OrderBL())
                {
                    Order order = await orderBL.GetOrderByOrderNumberBL(orderToBeReturned);

                    onlineReturn.OrderID = order.OrderId;
                    using (IOrderDetailBL orderDetailBL = new OrderDetailBL())
                    {
                        matchingOrder = await orderDetailBL.GetOrderDetailsByOrderIDBL(order.OrderId);
                    }
                }

                if (matchingOrder.Count != 0)
                {
                    int orderNo = 0;
                    WriteLine("Products in the order are ");
                    foreach (var orderDetail in matchingOrder)
                    {
                        orderNo++;
                        WriteLine("#\tProductID\t ProductQuantityOrdered\t ProductPrice\t TotalAmount");
                        WriteLine($"{orderNo}\t{orderDetail.ProductID}\t{orderDetail.ProductQuantityOrdered}\t{orderDetail.ProductPrice}\t{orderDetail.TotalAmount}");
                    }
                    WriteLine("Enter The Product Number to be Returned");
                    int ProductToBeReturned = int.Parse(ReadLine());
                    if (ProductToBeReturned <= matchingOrder.Count && ProductToBeReturned > 0)
                    {
                        WriteLine("Enter The Product Serial No. to be Returned");
                        Write("Product  #: ");
                        bool isNumberValid = int.TryParse(ReadLine(), out int serialNo);
                        if (isNumberValid)
                        {
                            serialNo--;
                            if (serialNo <= matchingOrder.Count - 1)
                            {
                                OrderDetail orderDetail = matchingOrder[serialNo];
                                onlineReturn.ProductID = orderDetail.ProductID;
                            }
                        }
                        Console.WriteLine("Enter The Quantity to be Returned");
                        int          QuantityOfReturn = int.Parse(Console.ReadLine());
                        IOrderDetail orderDetail1     = new OrderDetail();
                        onlineReturn.QuantityOfReturn = QuantityOfReturn;

                        foreach (var orderDetail in matchingOrder)
                        {
                            orderDetail1 = matchingOrder.Find(
                                (item) => { return(item.ProductQuantityOrdered == orderDetail.ProductQuantityOrdered); });
                        }

                        if (QuantityOfReturn <= orderDetail1.ProductQuantityOrdered)
                        {
                            WriteLine("Purpose of Return:\n1.  UnsatiSfactoryProduct\n2. WrongProductShipped\n3.  WrongProductOrdered\n4. DefectiveProduct  ");
                            bool isPurposeValid = int.TryParse(ReadLine(), out int purpose);
                            if (isPurposeValid)
                            {
                                if (purpose == 1)
                                {
                                    onlineReturn.Purpose = Helpers.PurposeOfReturn.UnsatiSfactoryProduct;
                                }
                                else if (purpose == 2)
                                {
                                    onlineReturn.Purpose = Helpers.PurposeOfReturn.WrongProductShipped;
                                }
                                else if (purpose == 3)
                                {
                                    onlineReturn.Purpose = Helpers.PurposeOfReturn.WrongProductOrdered;
                                }
                                else if (purpose == 4)
                                {
                                    onlineReturn.Purpose = Helpers.PurposeOfReturn.DefectiveProduct;
                                }
                                else
                                {
                                    WriteLine("Invalid Option Selected ");
                                }

                                Write("Are you sure? (Y/N): ");
                                string confirmation = ReadLine();
                                if (confirmation.Equals("Y", StringComparison.OrdinalIgnoreCase))
                                {
                                    using (IReturnBL onlineReturnBL = new ReturnBL())
                                    {
                                        bool confirmed = await onlineReturnBL.AddReturnBL(onlineReturn);

                                        if (confirmed)
                                        {
                                            matchingOrder[ProductToBeReturned - 1].ProductQuantityOrdered -= QuantityOfReturn;
                                            matchingOrder[ProductToBeReturned - 1].TotalAmount            -= matchingOrder[ProductToBeReturned - 1].ProductPrice * QuantityOfReturn;
                                            WriteLine("Total Return Amount: " + (matchingOrder[ProductToBeReturned - 1].ProductPrice * QuantityOfReturn));
                                            WriteLine("OnlineReturn Confirmed");
                                            WriteLine("OnlineReturnID is" + "  " + onlineReturn.OnlineReturnID);
                                        }
                                        else
                                        {
                                            WriteLine("Data Not Serialized");
                                        }
                                    }
                                }
                                else
                                {
                                    WriteLine(" Not Confirmed");
                                }
                            }
                            else
                            {
                                WriteLine(" Purpose of return not valid");
                            }
                        }
                        else
                        {
                            WriteLine("Invalid QuantityOfReturn");
                        }
                    }
                    else
                    {
                        WriteLine("Wrong Input");
                    }
                }
                else
                {
                    Console.WriteLine("OrderID not Found");
                }
            }
            catch (Exception)
            {
                throw;
            }
        }