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); }