Esempio n. 1
0
        private void btnEditCard_Click(object sender, RoutedEventArgs e)
        {
            Card       item     = null;
            CardDetail cdDetail = null;

            if (this.dgCardCollection.SelectedItems.Count > 0)
            {
                item = (Card)this.dgCardCollection.SelectedItem;
                try
                {
                    cdDetail = _cardManager.RetrieveCardDetail(item);
                    var detailForm = new frmCardDetails(_cardManager, cdDetail, CardDetailMode.Edit);
                    var results    = detailForm.ShowDialog();
                    if (results == true)
                    {
                        refreshCardList();
                        dgCardCollection.ItemsSource = _cardList;
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message + "\n\n" + ex.InnerException.Message, "Oh no...");
                }
            }
            else
            {
                MessageBox.Show("Please select a card to edit.");
            }
        }
        /**
         * use to handle transactions below $20
         * <param name="cardDetail"></param>
         */
        protected async Task <bool> CheapTransaction(CardDetail cardDetail)
        {
            try
            {
                switch (cardDetail)
                {
                case null:
                    throw new Exception();

                default:
                {
                    if (cardDetail.Amount <= 20)
                    {
                        //some service run here
                        return(true);
                    }
                    return(false);
                }
                }
            }
            catch (Exception e)
            {
                // logic of failed process
                Console.WriteLine(e);
                return(false);
            }
        }
Esempio n. 3
0
        public void PremiumTransaction_Above500_ReturnBool(CardDetail cardDetail) //[ValueSource("CCTestData")]
        {
            var cheap = PremiumTransaction(cardDetail).Result;

            Assert.Greater(cardDetail.Amount, 500, "Transaction is less than 500");
            Assert.IsTrue(cheap, "Transaction failed");
        }
Esempio n. 4
0
        public void ExpensiveTransaction_Above21AndBelow500_ReturnBool(CardDetail cardDetail) //[ValueSource("CCTestData")]
        {
            var cheap = ExpensiveTransaction(cardDetail).Result;

            Assert.IsTrue(cardDetail.Amount <= 500 && cardDetail.Amount >= 21, "Transaction is less or greater than 21 and 500");
            Assert.IsTrue(cheap, "Transaction failed");
        }
Esempio n. 5
0
        public void ProcessPaymentController_On_CardTransaction(CardDetail cardDetail)  //[ValueSource("CCVerificationTestData")]
        {
            var responseResult = _paymentProcessController.ProcessPayment(cardDetail).Result;


            Assert.IsTrue(responseResult.Value, "Transaction failed");
        }
Esempio n. 6
0
        public ActionResult Decline()
        {
            string id      = Request.Form["id"];
            string remarks = Request.Form["remarks"];

            if (string.IsNullOrEmpty(remarks))
            {
                remarks = "Declined";
            }
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Request request = db.Requests.Find(id);

            if (request == null)
            {
                return(HttpNotFound());
            }
            Transaction transaction = db.Transactions.Find(id);
            CardDetail  card        = db.CardDetails.FirstOrDefault(m => m.CardID == request.CardID);
            AspNetUser  user        = db.AspNetUsers.FirstOrDefault(m => m.UserName == request.UserName);

            if (transaction == null)
            {
                return(HttpNotFound());
            }
            user.Balance += request.Amount;
            db.Requests.Remove(request);
            transaction.Status          = 0;//Declined
            transaction.Remarks         = remarks;
            db.Entry(transaction).State = EntityState.Modified;
            db.SaveChanges();
            return(RedirectToAction("Index", new { declinedMessage = "Request Declined", acceptMessage = "" }));
        }
Esempio n. 7
0
        public static CardDetail GetCardDetail(string cardNo)
        {
            string url = $"https://ccdcapi.alipay.com/validateAndCacheCardInfo.json?_input_charset=utf-8&cardNo={cardNo}&cardBinCheck=true";

            try
            {
                string reval = HttpHelpers.GetString(url); //Utility.GetWebContent(url);

                CardDetail cardDetail;

                Dictionary <string, object> str = reval.Json();
                if (bool.Parse(str["validated"].ToString()))
                {
                    cardDetail = new CardDetail(str["validated"].ToVar <bool>(), cardNo, str["bank"].ToString(), Getownparentbanks(str["bank"].ToString()), GetCardDetailimg(str["bank"].ToString()), str["cardType"].ToString(), "验证成功!");
                }
                else
                {
                    cardDetail = new CardDetail(str["validated"].ToVar <bool>(), "您输入银行卡不正确!");
                }

                return(cardDetail);
            }
            catch (Exception e)
            {
                throw new Exception("银行验证出现问题了,请联系管理员进行修缮。", e);
            }
Esempio n. 8
0
 /** 转换一行数据 */
 protected override void transLine(string[] vRows)
 {
     CardDetail vSubNew;
     vSubNew = new CardDetail();
     vSubNew.configData(vRows);
     _dic.Add(vSubNew.id, vSubNew);
 }
Esempio n. 9
0
    public void SortTest ()
    {            
      IChannel fakeIChannel = Isolate.Fake.Instance<IChannel>();

      Card fakeCard1 =  Isolate.Fake.Instance<Card>();
      Isolate.WhenCalled(() => fakeCard1.Priority).WillReturn(3);

      Card fakeCard2 = Isolate.Fake.Instance<Card>();
      Isolate.WhenCalled(() => fakeCard2.Priority).WillReturn(2);

      Card fakeCard3 = Isolate.Fake.Instance<Card>();
      Isolate.WhenCalled(() => fakeCard3.Priority).WillReturn(1);

      var cardDetails = new List<CardDetail>();
      var card = new CardDetail(1, fakeCard1, fakeIChannel, false, 0);
      cardDetails.Add(card);
      card = new CardDetail(2, fakeCard2, fakeIChannel, false, 0);
      cardDetails.Add(card);
      card = new CardDetail(3, fakeCard3, fakeIChannel, true, 1);
      cardDetails.Add(card);

      cardDetails.Sort();

      List<CardDetail> freeCards =
          cardDetails.Where(t => t.NumberOfOtherUsers == 0 || (t.NumberOfOtherUsers > 0 && t.SameTransponder)).ToList();
      List<CardDetail> availCards = cardDetails.Where(t => t.NumberOfOtherUsers > 0 && !t.SameTransponder).ToList();
    }
Esempio n. 10
0
        public IHttpActionResult PutCardDetail(long id, CardDetail cardDetail)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != cardDetail.CardNumber)
            {
                return(BadRequest());
            }

            db.Entry(cardDetail).State = EntityState.Modified;

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

            return(StatusCode(HttpStatusCode.NoContent));
        }
Esempio n. 11
0
        public IHttpActionResult PostCardDetail(CardDetail cardDetail)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.CardDetails.Add(cardDetail);

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateException)
            {
                if (CardDetailExists(cardDetail.CardNumber))
                {
                    return(Conflict());
                }
                else
                {
                    throw;
                }
            }

            return(CreatedAtRoute("DefaultApi", new { id = cardDetail.CardNumber }, cardDetail));
        }
Esempio n. 12
0
        public ActionResult Accept(string id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Request request = db.Requests.Find(id);

            if (request == null)
            {
                return(HttpNotFound());
            }
            Transaction transaction = db.Transactions.Find(id);

            if (transaction == null)
            {
                return(HttpNotFound());
            }

            //AspNetUser user = db.AspNetUsers.FirstOrDefault(m => m.UserName == request.UserName);
            CardDetail card = db.CardDetails.FirstOrDefault(m => m.CardID == request.CardID);

            card.Balance               += request.Amount;
            transaction.Status          = 1;//Accepted
            transaction.Remarks         = "Accepted";
            db.Entry(transaction).State = EntityState.Modified;
            db.Requests.Remove(request);
            db.SaveChanges();
            return(RedirectToAction("Index", new { acceptMessage = "Request Accepted", declinedMessage = "" }));
        }
Esempio n. 13
0
        public void SaveCardDetails(CardDetail cardDet)
        {
            var query = $@"
INSERT INTO [dbo].[CardDetails](CardNumber, AccountBalance, BankCode, CurrencyCode, CardStatus, CardClassification)
VALUES
('{cardDet.CardNumber}', {cardDet.AccountBalance.ToString("F").Replace(',', '.')}, {(int)cardDet.BankCode}, {(int)cardDet.Currency}, {(int)cardDet.CardStatus}, {(int)cardDet.CardClass})";

            using (var conn = getConnection())
            {
                if (isConnectionValid(conn))
                {
                    try
                    {
                        using (var command = new SqlCommand())
                        {
                            command.CommandText = query;
                            command.CommandType = CommandType.Text;
                            command.Connection  = conn;
                            conn.Open();

                            command.ExecuteNonQuery();
                        }
                    }
                    catch (Exception ex)
                    {
                        throw new ExceptionLogger(this.logger, "Could not sve the Bank Account.", ex);
                    }
                    finally
                    {
                        conn.Close();
                    }
                }
            }
        }
 public HttpResponseMessage Approved(string Email)
 {
     try
     {
         using (project1Entities db = new project1Entities())
         {
             UserTable user = db.UserTables.Find(Email);
             CardType  type = db.CardTypes.Find(user.CardType);
             Random    rnd  = new Random();
             if (user == null)
             {
                 return(Request.CreateResponse(HttpStatusCode.NotFound, "User with Email " + Email + "not found"));
             }
             DateTime d1 = DateTime.Now;
             user.validation = "Approved";
             CardDetail card = new CardDetail();
             card.Type         = user.CardType;
             card.Email        = user.Email;
             card.CurrentLimit = type.Limit;
             card.ValidFrom    = d1;
             card.ValidTill    = d1.AddYears(4);
             card.CVV          = rnd.Next(101, 999);
             db.CardDetails.Add(card);
             db.SaveChanges();
             return(Request.CreateResponse(HttpStatusCode.Created, user));
         }
     }
     catch (Exception ex)
     {
         return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
     }
 }
 // edit mode
 public frmCardDetails(ICardManager cdMgr, CardDetail cdDetail, CardDetailMode mode)
 {
     _cardManager = cdMgr;
     _cardDetail  = cdDetail;
     _mode        = mode;
     InitializeComponent();
 }
Esempio n. 16
0
        public void Post([FromBody] Purchase pur)
        {
            FinanceEntities db = new FinanceEntities();
            PurchaseDetail  p  = new PurchaseDetail();

            p.ProductID = pur.id;
            p.CardID    = (from c in db.CardDetails
                           join u in db.Users
                           on c.CustomerID equals u.CustomerID
                           where u.Username == pur.username
                           select c.CardID).FirstOrDefault();
            p.PurchaseDate = DateTime.Now;
            p.CustomerID   = (from u in db.Users where u.Username == pur.username select u.CustomerID).FirstOrDefault();
            p.EmiScheme    = pur.scheme;
            p.EmiPerMonth  = pur.amount / pur.scheme;
            p.EmiPaid      = 0;
            p.EmiLeft      = pur.amount;
            p.PaidForMonth = "NO";
            db.PurchaseDetails.Add(p);
            db.SaveChanges();

            CardDetail query = (from c in db.CardDetails
                                where c.CustomerID == p.CustomerID
                                select c).FirstOrDefault();

            query.RemainingCredit = query.RemainingCredit - pur.amount;
            db.Entry(query).State = System.Data.Entity.EntityState.Modified;

            db.SaveChanges();
        }
        private async Task DeleteCard(int id)
        {  //get card to remove from queryable list of cards
            CardDetail SelectedCard = Cards.Where(x => x.Id == id).FirstOrDefault();

            Cards.Remove(SelectedCard); //remove card
            //Get cards from saved list
            List <string> Cardslst = new List <string>();

            foreach (var item in Cards) //add cards back with updated card
            {
                string cardstring = string.Format("{0}*{1}*{2}*{3}", item.Bank, item.CardNo, item.Expiry, item.CVV);
                Cardslst.Add(cardstring);
            }
            if (Cardslst.Count() > 0)
            {
                ApplicationData.Current.LocalSettings.Values["Cards"] = Cardslst.ToArray(); //save changes
            }
            else
            {
                ApplicationData.Current.LocalSettings.Values.Remove("Cards");
                HasCard = false;
            }

            await UIHelper.ShowAlert(res.GetString("CardRemoved"));
        }
Esempio n. 18
0
 public MallStatusResponse(string buyOrder, CardDetail cardDetail, string accountingDate, string transactionDate)
 {
     BuyOrder        = buyOrder;
     CardDetail      = cardDetail;
     AccountingDate  = accountingDate;
     TransactionDate = transactionDate;
 }
Esempio n. 19
0
        public async Task <ActionResult <bool> > ProcessPayment(CardDetail cardDetail)
        {
            try
            {
                if (cardDetail == null)
                {
                    throw new Exception();
                }

                var paymentStatus = new PaymentState();
                paymentStatus.StateEnum = PaymentStateEnum.Pending;
                _context.PaymentState.Add(paymentStatus);
                await _context.SaveChangesAsync();

                var isProcessed = await _paymentGatewayRepo.ProcessTransaction(cardDetail, paymentStatus);

                if (isProcessed)
                {
                    return(Ok("Payment is processed"));
                }

                return(BadRequest(new
                {
                    message = "The request is invalid"
                }));
            }
            catch (Exception e)
            {
                return(StatusCode(500, new
                {
                    error = e.Message,
                    message = "Lost connection to payment platform, Please try back later"
                }));
            }
        }
Esempio n. 20
0
        public void CheapTransaction_Below20_ReturnBool(CardDetail cardDetail) //[ValueSource("CCTestData")]
        {
            var cheap = CheapTransaction(cardDetail).Result;

            Assert.LessOrEqual(cardDetail.Amount, 20, "Transaction is greater than 20");
            Assert.IsTrue(cheap, "Transaction failed");
        }
        public IHttpActionResult PostRequest(Request request)
        {
            string     userName = RequestContext.Principal.Identity.GetUserName();
            AspNetUser user     = db.AspNetUsers.FirstOrDefault(u => u.UserName == userName);
            CardDetail card     = db.CardDetails.FirstOrDefault(c => c.CardID == request.CardID);

            if (user == null)
            {
                return(BadRequest("User doesnt exists, Please Logout and try again"));
            }
            if (card == null)
            {
                return(BadRequest("This card is not registered in the System, Please contact the Administrator"));
            }
            if (request.UserName != user.UserName)
            {
                return(BadRequest("This card does not belong to the user"));
            }
            if (user.Balance < request.Amount)
            {
                return(BadRequest("The user does not have sufficient balance!"));
            }
            request.UserName  = userName;
            request.Name      = user.Name;
            request.RequestID = Guid.NewGuid().ToString();
            request.TimeStamp = DateTime.Now;
            Transaction transaction = new Transaction()
            {
                TransactionID = request.RequestID,
                TimeStamp     = request.TimeStamp,
                Username      = request.UserName,
                CardID        = request.CardID,
                CardType      = request.CardType,
                Amount        = request.Amount,
                Status        = 2,//Pending transaction
                Remarks       = "Pending",
                Type          = "Credit",
                VehicleNumber = card.VehicleNumber
            };

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            user.Balance -= request.Amount;
            db.Requests.Add(request);
            db.Transactions.Add(transaction);
            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateException)
            {
                BadRequest("Could not process request..Please try again later");
            }
            RequestResponse response = new RequestResponse(request);

            response.Balance = user.Balance;
            return(CreatedAtRoute("DefaultApi", new { id = request.RequestID }, response));
        }
Esempio n. 22
0
 public static CardDetailModel GetCardDetailModel(CardDetail cardDetail, Language language)
 {
     return(new CardDetailModel()
     {
         CardDetailId = cardDetail.CardDetailId,
         CardId = cardDetail.CardId,
         Language = new LanguageModel()
         {
             LanguageId = language.LanguageId,
             Name = language.Name,
             Code = language.Code,
             FlagImagePath = language.FlagImagePath,
             CreatedById = language.CreatedById,
             CreatedDate = language.CreatedDate,
             UpdatedById = language.UpdatedById,
             UpdatedDate = language.UpdatedDate,
             Deleted = language.Deleted,
         },
         Name = cardDetail.Name,
         Text = cardDetail.Text,
         Effect = cardDetail.Effect,
         Reward = cardDetail.Reward,
         ToSolve = cardDetail.ToSolve,
         FlavorText = cardDetail.FlavorText,
         Illustrator = cardDetail.Illustrator,
         Copyright = cardDetail.Copyright,
         Note = cardDetail.Note,
         Orientation = cardDetail.Orientation,
         CreatedById = cardDetail.CreatedById,
         CreatedDate = cardDetail.CreatedDate,
         UpdatedById = cardDetail.UpdatedById,
         UpdatedDate = cardDetail.UpdatedDate,
         Deleted = cardDetail.Deleted,
     });
 }
Esempio n. 23
0
 public HttpResponseMessage financeup(int id)
 {
     try
     {
         using (project1Entities db = new project1Entities())
         {
             var        data = db.Finances.Find(id);
             CardDetail card = db.CardDetails.Where(x => x.Email == data.Email).FirstOrDefault();
             if (data == null)
             {
                 return(Request.CreateResponse(HttpStatusCode.NotFound, "Purchase with finance id " + id + " not found"));
             }
             else
             {
                 data.Months = data.Months - 1;
                 //data.EmiAmount = finance.EmiAmount;
                 //data.TotalAmount = finance.TotalAmount;
                 data.RemainingAmount = data.RemainingAmount - data.EmiAmount;
                 //data.purchaseDate = finance.purchaseDate;
                 //data.ProductID = finance.ProductID;
                 data.LastPaymentDate = DateTime.Now;
                 card.CurrentLimit    = card.CurrentLimit + data.EmiAmount;
                 db.SaveChanges();
                 return(Request.CreateResponse(HttpStatusCode.OK, data));
             }
         }
     }
     catch (Exception ex)
     {
         return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex.Message));
     }
 }
        public void SortTest()
        {
            IChannel fakeIChannel = Isolate.Fake.Instance <IChannel>();

            Card fakeCard1 = Isolate.Fake.Instance <Card>();

            Isolate.WhenCalled(() => fakeCard1.Priority).WillReturn(3);

            Card fakeCard2 = Isolate.Fake.Instance <Card>();

            Isolate.WhenCalled(() => fakeCard2.Priority).WillReturn(2);

            Card fakeCard3 = Isolate.Fake.Instance <Card>();

            Isolate.WhenCalled(() => fakeCard3.Priority).WillReturn(1);

            var cardDetails = new List <CardDetail>();
            var card        = new CardDetail(1, fakeCard1, fakeIChannel, false, 0);

            cardDetails.Add(card);
            card = new CardDetail(2, fakeCard2, fakeIChannel, false, 0);
            cardDetails.Add(card);
            card = new CardDetail(3, fakeCard3, fakeIChannel, true, 1);
            cardDetails.Add(card);

            cardDetails.Sort();

            List <CardDetail> freeCards =
                cardDetails.Where(t => t.NumberOfOtherUsers == 0 || (t.NumberOfOtherUsers > 0 && t.SameTransponder)).ToList();
            List <CardDetail> availCards = cardDetails.Where(t => t.NumberOfOtherUsers > 0 && !t.SameTransponder).ToList();
        }
Esempio n. 25
0
 public ActionResult Index(AtmCardModel model)
 {
     try
     {
         if (ModelState.IsValid)
         {
             CardDetail _atmCardDetails = model.GetCardDetail(model.CardNumber);
             if (_atmCardDetails != null && _atmCardDetails.IsActivated)
             {
                 TempData["Name"] = model.CardNumber;
                 return(RedirectToAction("Dashboard", "Dashboard"));
             }
             else if (_atmCardDetails != null && !_atmCardDetails.IsActivated)
             {
                 //first time registration
                 //to do...
             }
             else
             {
                 return(View());
             }
         }
         return(View());
     }
     catch
     {
         return(View());
     }
 }
Esempio n. 26
0
        public async Task <ActionResult <CardDetail> > PostCardDetail(CardDetail cardDetail)
        {
            _context.CardDetails.Add(cardDetail);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetCardDetail", new { id = cardDetail.CardDetailId }, cardDetail));
        }
Esempio n. 27
0
        public async Task <IActionResult> PutCardDetail(int id, CardDetail cardDetail)
        {
            if (id != cardDetail.CardDetailId)
            {
                return(BadRequest());
            }

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

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

            return(NoContent());
        }
        public CardDetail GetCardbyId(string CardId)
        {
            int        Id      = Convert.ToInt32(CardId);
            CardDetail objCard = new CardDetail();

            objCard = objEntity.CardDetails.Find(Id);
            return(objCard);
        }
Esempio n. 29
0
    /** 转换一行数据 */
    protected override void transLine(string[] vRows)
    {
        CardDetail vSubNew;

        vSubNew = new CardDetail();
        vSubNew.configData(vRows);
        _dic.Add(vSubNew.id, vSubNew);
    }
Esempio n. 30
0
        public ActionResult DeleteConfirmed(string id)
        {
            CardDetail carddetail = db.CardDetails.Find(id);

            db.CardDetails.Remove(carddetail);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Esempio n. 31
0
        public ActionResult Create(CardDetail carddetail)
        {
            if (String.IsNullOrEmpty(carddetail.UserName))
            {
                ModelState.AddModelError("UserName", "User cannot be empty!");
            }
            AspNetUser user = db.AspNetUsers.FirstOrDefault(u => u.UserName == carddetail.UserName);

            if (user == null)
            {
                ModelState.AddModelError("UserName", "User not found!");
            }
            if (String.IsNullOrEmpty(carddetail.CardID))
            {
                ModelState.AddModelError("CardID", "This field cannot be empty!");
            }
            CardDetail card = db.CardDetails.Find(carddetail.CardID);

            if (card != null)
            {
                ModelState.AddModelError("CardID", "Duplicate CardID, Please provide a unique cardID");
            }
            if (String.IsNullOrEmpty(carddetail.Balance.ToString()))
            {
                ModelState.AddModelError("Balance", "This field cannot be empty!");
            }
            if (String.IsNullOrEmpty(carddetail.CardType))
            {
                ModelState.AddModelError("CardType", "This field cannot be empty!");
            }
            if (String.IsNullOrEmpty(carddetail.ExpiryDate.ToString()))
            {
                ModelState.AddModelError("ExpiryDate", "This field cannot be empty!");
            }
            if (String.IsNullOrEmpty(carddetail.VehicleNumber))
            {
                ModelState.AddModelError("VehicleNumber", "This field cannot be empty!");
            }

            if (ModelState.IsValid)
            {
                string message;
                carddetail.CardType = carddetail.CardType.ToUpper();
                carddetail.Name     = user.Name;
                try
                {
                    db.CardDetails.Add(carddetail);
                    db.SaveChanges();
                    message = "Card created succesfully!";
                }
                catch (Exception)
                {
                    message = "Something went wrong..unable to connect to database";
                }
                return(RedirectToAction("Create", new { message = message }));
            }
            return(View());
        }
Esempio n. 32
0
    public void CheatBai()
    {
        MessageSending _messageSending = new MessageSending(CMD_REALTIME.C_GAMEPLAY_ADMIN_CHEAT);

        for (int i = 0; i < cheatCard_Global.Count; i++)
        {
            CardDetail _cardDetail = GetCardDetail(cheatCard_Global[i]);
            _messageSending.writeByte((byte)_cardDetail.cardId);
        }
        for (int i = 0; i < cheatCard_Player_00.Count; i++)
        {
            CardDetail _cardDetail = GetCardDetail(cheatCard_Player_00[i]);
            _messageSending.writeByte((byte)_cardDetail.cardId);
        }
        for (int i = 0; i < cheatCard_Player_01.Count; i++)
        {
            CardDetail _cardDetail = GetCardDetail(cheatCard_Player_01[i]);
            _messageSending.writeByte((byte)_cardDetail.cardId);
        }
        for (int i = 0; i < cheatCard_Player_02.Count; i++)
        {
            CardDetail _cardDetail = GetCardDetail(cheatCard_Player_02[i]);
            _messageSending.writeByte((byte)_cardDetail.cardId);
        }
        for (int i = 0; i < cheatCard_Player_03.Count; i++)
        {
            CardDetail _cardDetail = GetCardDetail(cheatCard_Player_03[i]);
            _messageSending.writeByte((byte)_cardDetail.cardId);
        }
        for (int i = 0; i < cheatCard_Player_04.Count; i++)
        {
            CardDetail _cardDetail = GetCardDetail(cheatCard_Player_04[i]);
            _messageSending.writeByte((byte)_cardDetail.cardId);
        }
        for (int i = 0; i < cheatCard_Player_05.Count; i++)
        {
            CardDetail _cardDetail = GetCardDetail(cheatCard_Player_05[i]);
            _messageSending.writeByte((byte)_cardDetail.cardId);
        }
        for (int i = 0; i < cheatCard_Player_06.Count; i++)
        {
            CardDetail _cardDetail = GetCardDetail(cheatCard_Player_06[i]);
            _messageSending.writeByte((byte)_cardDetail.cardId);
        }
        for (int i = 0; i < cheatCard_Player_07.Count; i++)
        {
            CardDetail _cardDetail = GetCardDetail(cheatCard_Player_07[i]);
            _messageSending.writeByte((byte)_cardDetail.cardId);
        }
        for (int i = 0; i < cheatCard_Player_08.Count; i++)
        {
            CardDetail _cardDetail = GetCardDetail(cheatCard_Player_08[i]);
            _messageSending.writeByte((byte)_cardDetail.cardId);
        }

        NetworkGlobal.instance.SendMessageRealTime(_messageSending);
    }
Esempio n. 33
0
 public void TestTransponderSorting()
 {
   IChannel fakeIChannel = Isolate.Fake.Instance<IChannel>();
   Card fakeCard = Isolate.Fake.Instance<Card>();
   CardDetail c1 = new CardDetail(1, CreateCardMock(1), fakeIChannel, true, 0);
   CardDetail c2 = new CardDetail(2, CreateCardMock(1), fakeIChannel, false, 0);
   Assert.AreEqual(0, c1.CompareTo(c1));
   Assert.AreEqual(-1, c1.CompareTo(c2));
   Assert.AreEqual(1, c2.CompareTo(c1));
   Assert.AreEqual(0, c2.CompareTo(c2));
 }
 public static CardDetail CreateCardDetail(string card_num, decimal balance, int cvv, global::System.DateTime expiration_dt, string card_name, string card_type)
 {
     CardDetail cardDetail = new CardDetail();
     cardDetail.card_num = card_num;
     cardDetail.balance = balance;
     cardDetail.cvv = cvv;
     cardDetail.expiration_dt = expiration_dt;
     cardDetail.card_name = card_name;
     cardDetail.card_type = card_type;
     return cardDetail;
 }
 private void LogNumberOfOtherUsersFound(CardDetail cardDetail)
 {
   if (LogEnabled && cardDetail.Card.IdCard > 0)
   {
     var tvController = _controller as TVController;
     if (tvController != null)
     {
       ITvCardHandler card = tvController.CardCollection[cardDetail.Card.IdCard];
       Log.Info("Controller:    card:{0} type:{1} users: {2}", cardDetail.Card.IdCard, card.Type, cardDetail.NumberOfOtherUsers);              
     }
   }
 }
Esempio n. 36
0
    public void TestPrioritySorting()
    {
      IChannel fakeIChannel = Isolate.Fake.Instance<IChannel>();
      Card fakeCard = Isolate.Fake.Instance<Card>();
      CardDetail c1 = new CardDetail(1, CreateCardMock(3), fakeIChannel, true, 0);
      CardDetail c2 = new CardDetail(2, CreateCardMock(2), fakeIChannel, true, 0);
      CardDetail c3 = new CardDetail(3, CreateCardMock(1), fakeIChannel, true, 0);
      Assert.AreEqual(0, c1.CompareTo(c1));
      Assert.AreEqual(-1, c1.CompareTo(c2));
      Assert.AreEqual(-1, c1.CompareTo(c3));

      Assert.AreEqual(1, c2.CompareTo(c1));
      Assert.AreEqual(0, c2.CompareTo(c2));
      Assert.AreEqual(-1, c2.CompareTo(c3));

      Assert.AreEqual(1, c3.CompareTo(c1));
      Assert.AreEqual(1, c3.CompareTo(c2));
      Assert.AreEqual(0, c3.CompareTo(c3));
    }
Esempio n. 37
0
    public void TestNumberOfUsersSortingWhenNotSameTransponderSorting()
    {
      IChannel fakeIChannel = Isolate.Fake.Instance<IChannel>();
      Card fakeCard = Isolate.Fake.Instance<Card>();
      CardDetail c1 = new CardDetail(1, CreateCardMock(1), fakeIChannel, false, 0);
      CardDetail c2 = new CardDetail(2, CreateCardMock(1), fakeIChannel, false, 1);
      CardDetail c3 = new CardDetail(2, CreateCardMock(1), fakeIChannel, false, 2);

      Assert.AreEqual(0, c1.CompareTo(c1));
      Assert.AreEqual(-1, c1.CompareTo(c2));
      Assert.AreEqual(-1, c1.CompareTo(c3));

      Assert.AreEqual(1, c2.CompareTo(c1));
      Assert.AreEqual(0, c2.CompareTo(c2));
      Assert.AreEqual(-1, c2.CompareTo(c3));

      Assert.AreEqual(1, c3.CompareTo(c1));
      Assert.AreEqual(1, c3.CompareTo(c2));
      Assert.AreEqual(0, c3.CompareTo(c3));
    }
Esempio n. 38
0
 /// <summary>
 /// 设置卡牌数据
 /// </summary>
 /// <param name="vCardDetail"></param>
 public void SetCardDetail(CardDetail vCardDetail)
 {
     this.cardDetail = vCardDetail;
 }
Esempio n. 39
0
 public void SetCard(CardDetail vCard)
 {
     this.card = vCard;
 }
 private static void CancelMissingCardReservation(IEnumerable<CardDetail> freeCards, CardDetail cardDetailForReservation, ICollection<ICardTuneReservationTicket> tickets, IDictionary<int, ITvCardHandler> cards)
 {
   int idcard = cardDetailForReservation.Card.IdCard;
   if (freeCards != null && !freeCards.Any(t => t.Card.IdCard == idcard))
   {
     CancelCardReservationAndRemoveTicket(cards[idcard], tickets);
   }
 }
Esempio n. 41
0
    private bool SetupAndStartRecord(RecordingDetail recDetail, ref IUser user, CardDetail cardInfo, ICardTuneReservationTicket ticket, CardReservationRec cardResImpl)
    {
      bool result = false;
      if (cardInfo != null)
      {
        user.CardId = cardInfo.Id;
        StartRecordingNotification(recDetail);
        SetupRecordingFolder(cardInfo);
        if (StartRecordingOnDisc(recDetail, ref user, cardInfo, ticket, cardResImpl))
        {
          CreateRecording(recDetail);
          try
          {
            recDetail.User.CardId = user.CardId;
            SetRecordingProgramState(recDetail);
            _recordingsInProgressList.Add(recDetail);
            RecordingStartedNotification(recDetail);
            SetupQualityControl(recDetail);
            WriteMatroskaFile(recDetail);
          }
          catch (Exception ex)
          {
            //consume exception, since it isn't catastrophic
            Log.Write(ex);
          }

          Log.Write("Scheduler: recList: count: {0} add scheduleid: {1} card: {2}",
                    _recordingsInProgressList.Count,
                    recDetail.Schedule.IdSchedule, recDetail.CardInfo.Card.Name);
          result = true;
        }
      }
      else
      {
        Log.Write("scheduler: no card found to record on.");
      }
      return result;
    }
 public static void CancelCardReservationAndRemoveTicket(CardDetail cardDetail, IDictionary<CardDetail, ICardTuneReservationTicket> tickets, IDictionary<int, ITvCardHandler> cards)
 {
   if (cardDetail != null && tickets != null)
   {
     ICardTuneReservationTicket ticket;
     bool hasTicket = tickets.TryGetValue(cardDetail, out ticket);
     if (hasTicket)
     {
       tickets.Remove(cardDetail);
       ITvCardHandler cardHandler = cards[cardDetail.Id];
       CancelCardReservation(cardHandler, ticket);
     }
   }
 }
Esempio n. 43
0
    private bool StartRecordingOnDisc(RecordingDetail recDetail, ref IUser user, CardDetail cardInfo, ICardTuneReservationTicket ticket, CardReservationRec cardResImpl)
    {
      bool startRecordingOnDisc = false;
      _tvController.EpgGrabberEnabled = false;
      Log.Write("Scheduler : record, first tune to channel");
      
      cardResImpl.CardInfo = cardInfo;
      cardResImpl.RecDetail = recDetail;      
      
      TvResult tuneResult = _tvController.Tune(ref user, cardInfo.TuningDetail, recDetail.Channel.IdChannel, ticket, cardResImpl);      
      startRecordingOnDisc = (tuneResult == TvResult.Succeeded);

      return startRecordingOnDisc;
    }    
Esempio n. 44
0
 private void SetupRecordingFolder(CardDetail cardInfo)
 {
   if (cardInfo.Card.RecordingFolder == String.Empty)
     cardInfo.Card.RecordingFolder = String.Format(@"{0}\Team MediaPortal\MediaPortal TV Server\recordings",
                                                   Environment.GetFolderPath(
                                                     Environment.SpecialFolder.CommonApplicationData));
   if (cardInfo.Card.TimeShiftFolder == String.Empty)
     cardInfo.Card.TimeShiftFolder = String.Format(@"{0}\Team MediaPortal\MediaPortal TV Server\timeshiftbuffer",
                                                   Environment.GetFolderPath(
                                                     Environment.SpecialFolder.CommonApplicationData));
 }
Esempio n. 45
0
    private void KickUserOnSameTransponder(CardDetail cardDetail, ICardTuneReservationTicket ticket, ref CardDetail cardInfo) 
    {      
      bool canKickAllUsersOnTransponder = CanKickAllUsersOnTransponder(ticket);

      if (canKickAllUsersOnTransponder)
      {
        for (int i = 0; i < ticket.TimeshiftingUsers.Count; i++)
        {
          IUser timeshiftingUser = ticket.TimeshiftingUsers[i];
          Log.Write(
            "Scheduler : card is tuned to the same transponder but not free. record on card:{0} priority:{1}, kicking user:{2}",
            cardDetail.Id, cardDetail.Card.Priority, timeshiftingUser.Name);
          _tvController.StopTimeShifting(ref timeshiftingUser, TvStoppedReason.RecordingStarted);

          cardInfo = cardDetail;
          break;
        }  
      }      
    }
Esempio n. 46
0
    private void KickAllUsersOnTransponder(CardDetail cardDetail, ICardTuneReservationTicket ticket) 
    {
      Log.Write(
        "Scheduler : card is not tuned to the same transponder and not recording, kicking all users. record on card:{0} priority:{1}",
        cardDetail.Id, cardDetail.Card.Priority);
      for (int i = 0; i < ticket.TimeshiftingUsers.Count; i++ )
      {
        IUser timeshiftingUser = ticket.TimeshiftingUsers[i];
        Log.Write(
          "Scheduler : kicking user:{0}",
          timeshiftingUser.Name);
        _tvController.StopTimeShifting(ref timeshiftingUser, TvStoppedReason.RecordingStarted);

        Log.Write(
          "Scheduler : card is tuned to the same transponder but not free. record on card:{0} priority:{1}, kicking user:{2}",
          cardDetail.Id, cardDetail.Card.Priority, timeshiftingUser.Name);
      }
    }
    /// <summary>
    /// Gets a list of all available cards which can receive the channel specified
    /// List is sorted.
    /// </summary>
    /// <returns>list containg all cards which can receive the channel</returns>
    public List<CardDetail> GetAvailableCardsForChannel(IDictionary<int, ITvCardHandler> cards, Channel dbChannel, ref IUser user, out IDictionary<int, TvResult> cardsUnAvailable)
    {      
      Stopwatch stopwatch = Stopwatch.StartNew();
      cardsUnAvailable = new Dictionary<int, TvResult>();
      try
      {
        //Log.Info("GetFreeCardsForChannel st {0}", Environment.StackTrace);
        //construct list of all cards we can use to tune to the new channel
        var cardsAvailable = new List<CardDetail>();        
        if (LogEnabled)
        {
          Log.Info("Controller: find card for channel {0}", dbChannel.DisplayName);
        }
        //get the tuning details for the channel
        ICollection<IChannel> tuningDetails = CardAllocationCache.GetTuningDetailsByChannelId(dbChannel);// _businessLayer.GetTuningChannelsByDbChannel(dbChannel);
        bool isValidTuningDetails = IsValidTuningDetails(tuningDetails);
        if (!isValidTuningDetails)
        {
          //no tuning details??
          if (LogEnabled)
          {
            Log.Info("Controller:  No tuning details for channel:{0}", dbChannel.DisplayName);
          }
          return cardsAvailable;
        }

        if (LogEnabled)
        {
          Log.Info("Controller:   got {0} tuning details for {1}", tuningDetails.Count, dbChannel.DisplayName);
        }
        int number = 0;        
        ICollection<ITvCardHandler> cardHandlers = cards.Values;

        foreach (IChannel tuningDetail in tuningDetails)
        {
          cardsUnAvailable.Clear();
          number++;
          if (LogEnabled)
          {
            Log.Info("Controller:   channel #{0} {1} ", number, tuningDetail.ToString());
          }
          foreach (ITvCardHandler cardHandler in cardHandlers)
          {
            int cardId = cardHandler.DataBaseCard.IdCard;

            if (cardsUnAvailable.ContainsKey(cardId))
            {
              if (LogEnabled)
              {
                Log.Info("Controller:    card:{0} has already been queried, skipping.", cardId);
              }
              continue;
            }
            if (!CanCardTuneChannel(cardHandler, dbChannel, tuningDetail))
            {
              AddCardUnAvailable(ref cardsUnAvailable, cardId, TvResult.ChannelNotMappedToAnyCard);
              continue;
            }

            if (!CanCardDecodeChannel(cardHandler, tuningDetail))
            {
              AddCardUnAvailable(ref cardsUnAvailable, cardId, TvResult.ChannelIsScrambled);
              continue;
            }

            //ok card could be used to tune to this channel
            bool isSameTransponder = IsSameTransponder(cardHandler, tuningDetail);
            if (LogEnabled)
            {
              Log.Info("Controller:    card:{0} type:{1} can tune to channel", cardId, cardHandler.Type);
            }            
            int nrOfOtherUsers = NumberOfOtherUsersOnCurrentCard(cardHandler, user);
            long? channelTimeshiftingOnOtherMux;
            var cardInfo = new CardDetail(cardId, cardHandler.DataBaseCard, tuningDetail, isSameTransponder,
                                                 nrOfOtherUsers);
            cardsAvailable.Add(cardInfo);
          }
        }


        //sort cards
        cardsAvailable.SortStable();
        if (LogEnabled)
        {
          Log.Info("Controller: found {0} card(s) for channel", cardsAvailable.Count);
        }

        return cardsAvailable;
      }
      catch (Exception ex)
      {
        Log.Write(ex);
        return null;
      }
      finally
      {
        stopwatch.Stop();
        Log.Info("AdvancedCardAllocation.GetAvailableCardsForChannel took {0} msec", stopwatch.ElapsedMilliseconds);
      }
    }
Esempio n. 48
0
 private static void UpdateCardsIterated(ICollection<CardDetail> freeCardsIterated, CardDetail card)
 {
   if (!freeCardsIterated.Contains(card))
   {
     freeCardsIterated.Add(card);
   }
 }
    public static ICardTuneReservationTicket RequestCardReservation(IUser user, CardDetail cardDetail, TVController tvController, ICardReservation cardResImpl, int idChannel)
    {
      ICardTuneReservationTicket ticket = null;
      int idCard = cardDetail.Card.IdCard;
      IUser userCopy = user.Clone() as User;
      if (userCopy != null)
      {
        IDictionary<int, ITvCardHandler> cards = tvController.CardCollection;
        userCopy.CardId = idCard;
        ITvCardHandler tvcard = cards[idCard];
        ticket = cardResImpl.RequestCardTuneReservation(tvcard, cardDetail.TuningDetail, userCopy, idChannel);
      }

      return ticket;
    }
 public void AddToCardDetails(CardDetail cardDetail)
 {
     base.AddObject("CardDetails", cardDetail);
 }
Esempio n. 51
0
 public void SetUI(CardDetail vCard)
 {
     this.card = vCard;
     this.SetUI();
 }
Esempio n. 52
0
 private static ICardTuneReservationTicket GetTicketByCardDetail(CardDetail cardInfo, IDictionary<CardDetail, ICardTuneReservationTicket> tickets)
 {
   ICardTuneReservationTicket ticket;
   tickets.TryGetValue(cardInfo, out ticket);
   return ticket;
 }