示例#1
0
        public async Task ActivateAsync(ActivateCardModel model)
        {
            var c = await GetAsync(model.CardId);

            if (c == null)
            {
                throw new ApplicationException("Card not found.");
            }
            if (c.Status == CardStatus.Inactive)
            {
#if !DEBUG
                c.ActivationCode = null;
#endif
                c.Status         = CardStatus.Active;
                model.EmployeeId = model.EmployeeId ?? CurrentEmployee.Id;
                var oldEmployee = await Db.Employees.FirstOrDefaultAsync(x => x.CardId == model.CardId);

                if (oldEmployee != null && oldEmployee.Id != model.EmployeeId)
                {
                    oldEmployee.CardId = null;
                }
                var e = await Db.Employees.FirstOrDefaultAsync(x => x.Id == model.EmployeeId);

                if (e == null)
                {
                    throw new ApplicationException("Employee not found.");
                }
                e.CardId = model.CardId;
                Db.EmployeeCards.Add(new EmployeeCard {
                    CardId = model.CardId, EmployeeId = model.EmployeeId
                });
                await Db.SaveChangesAsync();
            }
        }
        private ActivateCardModel CreateModel(string PAN, string seq_nr, string PIN, string expiryDate)
        {
            var model = new ActivateCardModel()
            {
                ReferenceID = Utilities.GenerateReferenceId(),
                RequestType = "937",
                PAN         = PAN,
                PIN         = PIN,
                seq_nr      = seq_nr,
                expiryDate  = expiryDate
            };

            return(model);
        }