Ejemplo n.º 1
0
        public Task <int> CreateDiscountVoucher(VoucherRequest discountRequest)
        {
            // var numOfVouchersCreated = 0;

            var vouchersList = new List <Discount>(discountRequest.NumbersOfVoucherToCreate);

            //create the gift object from the Vouher
            foreach (var num in Enumerable.Range(1, discountRequest.NumbersOfVoucherToCreate))


            {
                Discount discountVoucher = new Discount()
                {
                    Code               = CodeGenerator.HashedCode(discountRequest),
                    CreationDate       = discountRequest.CreationDate,
                    ExpiryDate         = discountRequest.ExpiryDate,
                    VoucherStatus      = "Active",
                    VoucherType        = discountRequest.VoucherType,
                    Description        = discountRequest.Description,
                    DiscountAmount     = discountRequest.DiscountAmount,
                    DiscountUnit       = discountRequest.DiscountUnit,
                    DiscountPercentage = discountRequest.DiscountPercentage,
                    RedemptionCount    = 0L,
                    MerchantId         = discountRequest.MerchantId,
                    Metadata           = discountRequest.Metadata
                };
                vouchersList.Add(discountVoucher);
            }
            //persist the object to the db
            return(DiscountRepository.CreateDiscountVoucherAsync(vouchersList));
        }
Ejemplo n.º 2
0
        public async Task <ActionResult <object> > CreateVoucher([FromBody] VoucherRequest voucherReq)
        {
            var createdVoucher = await baseVoucherService.CreateVoucher(voucherReq);

            var voucherType = voucherReq.VoucherType;

            //TODO:provide better status code to client on internal error
            if (createdVoucher == null)
            {
                return(new StatusCodeResult(500));                        //(new {Message = "Could not create the vouchers"});
            }
            switch (voucherType.ToUpper())
            {
            case "GIFT": return(CreatedAtAction(nameof(GetAllGiftVouchers),
                                                new { VoucherCreated = createdVoucher, Message = $"Created {createdVoucher} Vouchers" }));

            case "DISCOUNT": return(CreatedAtAction(nameof(GetAllDiscountVouchers),
                                                    new { VoucherCreated = createdVoucher, Message = $"Created {createdVoucher} Vouchers" }));

            case "VALUE": return(CreatedAtAction(nameof(GetAllValueVouchers), new { value = "value/all" },
                                                 new { VoucherCreated = createdVoucher, Message = $"Created {createdVoucher} Vouchers" }));

            default: return(BadRequest(new { Message = "Invalid Voucher type" }));
            }
        }
        public Task <int> CreateGiftVoucher(VoucherRequest giftRequest)
        {
            // var numOfVouchersCreated = 0;

            var vouchersList = new List <Gift>(giftRequest.NumbersOfVoucherToCreate);

            //create the gift object from the Vouher
            foreach (var num in Enumerable.Range(1, giftRequest.NumbersOfVoucherToCreate))
            {
                Gift giftVoucher = new Gift()
                {
                    Code          = CodeGenerator.HashedCode(giftRequest),
                    CreationDate  = giftRequest.CreationDate,
                    ExpiryDate    = giftRequest.ExpiryDate,
                    VoucherStatus = "Active",
                    VoucherType   = giftRequest.VoucherType,
                    Description   = giftRequest.Description,
                    GiftAmount    = giftRequest.GiftAmount,
                    MerchantId    = giftRequest.MerchantId,
                    Metadata      = giftRequest.Metadata,
                    GiftBalance   = giftRequest.GiftAmount //giftbalance == gift amount at creation
                };

                vouchersList.Add(giftVoucher);
            }
            return(GiftRepository.CreateGiftVoucherAsync(vouchersList));
        }
Ejemplo n.º 4
0
        public Task <int> CreateValueVoucher(VoucherRequest valueRequest)
        {
            // var numOfVouchersCreated = 0;

            var vouchersList = new List <Value>(valueRequest.NumbersOfVoucherToCreate);

            //create the gift object from the Vouher
            foreach (var num in Enumerable.Range(1, valueRequest.NumbersOfVoucherToCreate))

            {
                Value valueVoucher = new Value()
                {
                    Code          = CodeGenerator.HashedCode(valueRequest),
                    CreationDate  = valueRequest.CreationDate,
                    ExpiryDate    = valueRequest.ExpiryDate,
                    VoucherStatus = "Active",
                    VoucherType   = valueRequest.VoucherType,
                    Description   = valueRequest.Description,
                    ValueAmount   = valueRequest.ValueAmount,
                    MerchantId    = valueRequest.MerchantId,
                    Metadata      = valueRequest.Metadata,
                };
                vouchersList.Add(valueVoucher);
            }

            return(ValueRepository.CreateValueVoucherAsync(vouchersList));
        }
Ejemplo n.º 5
0
        public List <CustomerGiftVoucherDTO> GetAllVouchers(VoucherRequest request)
        {
            var vouchers =
                _customerGiftVoucherRepository
                .All.Include(x => x.Customer);

            if (request.Status == VoucherStatus.Redeemed)
            {
                return(DomainDTOMapper.ToCustomerGiftVoucherDTOs(vouchers.Where(x => x.IsRedeem).ToList()));
            }
            else if (request.Status == VoucherStatus.Cancelled)
            {
                return(DomainDTOMapper.ToCustomerGiftVoucherDTOs(vouchers.Where(x => x.IsCanceled).ToList()));
            }
            else if (request.Status == VoucherStatus.Issued)
            {
                return(DomainDTOMapper.ToCustomerGiftVoucherDTOs(vouchers.Where(x => !x.IsCanceled && !x.IsRedeem).ToList()));
            }
            else if (request.Status == VoucherStatus.All)
            {
                return(DomainDTOMapper.ToCustomerGiftVoucherDTOs(vouchers.ToList()));
            }

            return(DomainDTOMapper.ToCustomerGiftVoucherDTOs(vouchers.ToList()));
        }
Ejemplo n.º 6
0
        public void VoucherRequest_CanBeCreated_IsCreated()
        {
            VoucherRequest voucherRequest = new VoucherRequest(TestData.FileId, TestData.FileName, TestData.FileProfileId);

            voucherRequest.FileId.ShouldBe(TestData.FileId);
            voucherRequest.FileName.ShouldBe(TestData.FileName);
            voucherRequest.FileProfileId.ShouldBe(TestData.FileProfileId);
        }
Ejemplo n.º 7
0
    public void CreateVoucher([FromBody] VoucherRequest voucherReq)
    {
        VoucherController controller = new VoucherController();
        // Act
        ViewResult result = controller.CreateVoucher(voucherReq) as ViewResult;

        // Assert
        Assert.IsNotNull(result);
    }
Ejemplo n.º 8
0
        public JukeBox.BLL.Response.ApiResponse RedeemVoucher(VoucherRequest request)
        {
            var apiResp = new JukeBox.BLL.Response.ApiResponse {
                ResponseType = -1, ResponseMessage = "Failed"
            };

            var retVal = (new JukeBox.BLL.Account()).RedeemVoucher(request.VoucherPin, request.CustomerId);


            return(retVal);
        }
Ejemplo n.º 9
0
        public FinanceResponse Find(VoucherRequest request)
        {
            var voucher = new Voucher();
            var id      = service.Linked(request.id, request.Linked);

            if (id == 0)
            {
                throw new FinanceException(FinanceResult.RECORD_NOT_EXIST);
            }
            voucher.header     = service.FindHeader(id);
            voucher.entries    = service.FindEntrys(id);
            voucher.udefenties = service.FindUdefEntrys(id);
            return(new VoucherResponse {
                Content = voucher
            });
        }
Ejemplo n.º 10
0
        public static string HashedCode(VoucherRequest voucherRequest) //TODO: move to a util class so it can be shared by all services
        {
            string hashedCode;                                         //pattern or length; prefix; suffix
            string characterSet;
            string code;

            switch (voucherRequest.CharacterSet.ToLower())
            {
            case "alphabet": characterSet = Constants.ALPHABET_CHARACTERS; break;

            case "numeric": characterSet = Constants.NUMBER_CHARACTERS; break;

            case "alphanumeric": characterSet = Constants.ALPHABET_CHARACTERS + Constants.NUMBER_CHARACTERS; break;

            default: characterSet = Constants.ALPHABET_CHARACTERS + Constants.NUMBER_CHARACTERS; break;
            }

            if (!string.IsNullOrEmpty(voucherRequest.CodePattern))
            {
                code = CodeGenerator.GenerateCodeWithPattern(
                    voucherRequest.CodePattern, characterSet, voucherRequest.Separator);
            }

            else //length is specified
            {
                code = CodeGenerator.GenerateCode(voucherRequest.CodeLength, characterSet);
            }

            if (!string.IsNullOrEmpty(voucherRequest.Prefix))
            {
                code = CodeGenerator.GetCodeWithPrefix(voucherRequest.Prefix, code);
            }

            if (!string.IsNullOrEmpty(voucherRequest.Suffix))
            {
                code = CodeGenerator.GetCodeWithSuffix(code, voucherRequest.Suffix);
            }

            hashedCode = CodeGenerator.Encrypt(code);

            return(hashedCode);
        }
Ejemplo n.º 11
0
        public async Task <ApiResponse> TopUpVoucher(
            string urlBase,
            string servicePrefix,
            string controller,
            VoucherRequest requestVoucher)
        {
            try
            {
                var request = JsonConvert.SerializeObject(requestVoucher);
                var content = new StringContent(
                    request,
                    Encoding.UTF8,
                    "application/json");
                var client = new HttpClient();
                // client.DefaultRequestHeaders.Authorization =
                //    new AuthenticationHeaderValue(tokenType, accessToken);
                client.BaseAddress = new Uri(urlBase);
                var url      = string.Format("{0}{1}", servicePrefix, controller);
                var response = await client.PostAsync(url, content);

                if (!response.IsSuccessStatusCode)
                {
                    return(null);
                }

                var result = await response.Content.ReadAsStringAsync();

                return(JsonConvert.DeserializeObject <ApiResponse>(result));
            }
            catch (Java.Net.SocketException e)
            {
                // Console.WriteLine("\nException Caught!");
                // Console.WriteLine("Message :{0} ", e.Message);

                return(null);
            }
            catch (System.Net.Http.HttpRequestException)
            {
                return(null);
            }
        }
        /// <summary>
        /// Creates the process file request.
        /// </summary>
        /// <param name="fileProfile">The file profile.</param>
        /// <param name="fileName">Name of the file.</param>
        /// <returns></returns>
        private IRequest CreateProcessFileRequest(FileProfile fileProfile,
                                                  String fileName)
        {
            IRequest request = null;

            // Extract the file Id
            var fields = fileName.Split('-');

            switch (fileProfile.RequestType)
            {
            case "SafaricomTopupRequest":
                request = new SafaricomTopupRequest(Guid.Parse(fields[1]), fileName, fileProfile.FileProfileId);
                break;

            case "VoucherRequest":
                request = new VoucherRequest(Guid.Parse(fields[1]), fileName, fileProfile.FileProfileId);
                break;
            }

            return(request);
        }
Ejemplo n.º 13
0
 public async Task <Unit> Handle(VoucherRequest request,
                                 CancellationToken cancellationToken)
 {
     return(await this.ProcessFile(request.FileId, request.FileProfileId, request.FileName, cancellationToken));
 }
Ejemplo n.º 14
0
        private async void BtnTopUp_OnClicked(object sender, EventArgs e)
        {
            var img = ((Button)sender);

            if (img.BindingContext is MainViewModel main)
            {
                var request = new VoucherRequest
                {
                    VoucherPin = txtpin.Text,
                    CustomerId = main.User.UserId
                };

                var apiService = new ApiService();

                var checkConnetion = await apiService.CheckConnection();

                if (!checkConnetion.IsSuccess)
                {
                    this.IsEnabled = true;
                    await DisplayAlert(
                        Languages.Error,
                        checkConnetion.Message,
                        Languages.Accept);

                    return;
                }
                var apiSecurity   = Application.Current.Resources["APISecurity"].ToString();
                var orderResponse = await apiService.TopUpVoucher(
                    apiSecurity,
                    "/api/account",
                    "/customer/redeem",
                    request);

                if (orderResponse == null)
                {
                    this.IsEnabled = true;
                    await DisplayAlert(Languages.Error, Languages.SomethingWrong, Languages.Accept);

                    return;
                }
                if (orderResponse.ResponseType == 1)
                {
                    var user = await apiService.GetUserByEmail(
                        apiSecurity,
                        "/api/account",
                        "/customer/getcustomer",
                        main.Token.TokenType,
                        main.Token.AccessToken,
                        main.User.UserId.ToString());

                    var userLocal = Converter.ToUserLocal(user, Convert.ToInt32(main.Token.UserName));
                    userLocal.Password = main.User.Password;
                    main.User          = userLocal;
                    var dataService = new DataService();
                    dataService.Update(userLocal);
                    this.IsEnabled = true;
                    await DisplayAlert(Languages.Accept, orderResponse.ResponseMessage, Languages.Accept);

                    return;
                }
                else
                {
                    this.IsEnabled = true;
                    await DisplayAlert(Languages.Error, orderResponse.ResponseMessage, Languages.Accept);

                    return;
                }
            }
        }
Ejemplo n.º 15
0
        public async Task <int?> CreateVoucher(VoucherRequest voucherRequest)
        {
            var numOfVouchersCreated = voucherRequest.NumbersOfVoucherToCreate;

            //let each voucher service handle its own creation
            try
            {
                voucherRequest.CreationDate = DateTime.Now;
                voucherRequest.Metadata     = Guid.NewGuid().ToString();


                if (voucherRequest.VoucherType.ToUpper() == "GIFT")
                {
                    Task.Run(() => _giftVoucherService.CreateGiftVoucher(voucherRequest));
                }

                else if (voucherRequest.VoucherType.ToUpper() == "DISCOUNT")
                {
                    Task.Run(() => _discountVoucherService.CreateDiscountVoucher(voucherRequest));
                }

                else
                {
                    Task.Run(() => _valueVoucherService.CreateValueVoucher(voucherRequest));
                }

                //TODO: Log the event (VoucherCreated)
                var voucherGeneratedEvent = new VoucherGeneratedEvent()
                {
                    EventId         = Guid.NewGuid(),
                    EventTime       = DateTime.Now,
                    MerchantId      = voucherRequest.MerchantId,
                    NumberGenerated = numOfVouchersCreated,
                    Message         = "New Vouchers created"
                };

                _logger.LogInformation("Created {Number}: vouchers for {Merchant} :{@Event}",
                                       numOfVouchersCreated, voucherRequest.MerchantId, voucherGeneratedEvent);

                return(numOfVouchersCreated);
            }

            catch (VoucherCreateException ex) //something happened handle it
                                              //if some error occurred and not all voucher could be created log the error
            {
                //Log the error
                var creationError = new VoucherGenerationFailedEvent()
                {
                    EventId          = Guid.NewGuid(),
                    EventTime        = DateTime.Now,
                    MerchantId       = voucherRequest.MerchantId,
                    FailureReason    = ex.Message,
                    Message          = "Failed to generate voucher",
                    VoucherType      = voucherRequest.VoucherType,
                    NumberToGenerate = voucherRequest.NumbersOfVoucherToCreate
                };
                _logger.LogError("Could not generate voucher: {@creationError}", creationError);
                _logger.LogDebug(ex, "An error occured while creating vouchers for {Merchant}", voucherRequest.MerchantId);
                return(null);
            }
        }
Ejemplo n.º 16
0
        public async Task <int?> CreateVoucher(VoucherRequest voucherRequest)
        {
            var numOfVouchersCreated = 0;

            //let each voucher service handle its own creation
            try
            {
                voucherRequest.CreationDate = DateTime.Now;

                if (voucherRequest.VoucherType.ToUpper() == "GIFT")
                {
                    voucherRequest.CreationDate = DateTime.Now;
                    voucherRequest.Metadata     = Guid.NewGuid().ToString();

                    if (voucherRequest.VoucherType.ToUpper() == "GIFT")
                    {
                        numOfVouchersCreated += await _giftVoucherService.CreateGiftVoucher(voucherRequest);
                    }

                    else if (voucherRequest.VoucherType.ToUpper() == "DISCOUNT")
                    {
                        numOfVouchersCreated += await _discountVoucherService.CreateDiscountVoucher(voucherRequest);
                    }

                    else
                    {
                        numOfVouchersCreated += await _valueVoucherService.CreateValueVoucher(voucherRequest);
                    }

                    //TODO: Log the event (VoucherCreated)
                    var voucherGeneratedEvent = new VoucherGeneratedEvent()
                    {
                        EventId         = Guid.NewGuid(), EventTime = DateTime.Now, MerchantId = voucherRequest.MerchantId,
                        NumberGenerated = numOfVouchersCreated, Message = "New Vouchers created"
                    };

                    _logger.LogInformation("Created {Number}: vouchers for {Merchant} :{@Event}",
                                           numOfVouchersCreated, voucherRequest.MerchantId, voucherGeneratedEvent);

                    return(numOfVouchersCreated);
                }

                else if (voucherRequest.VoucherType.ToUpper() == "DISCOUNT")
                {
                    //TODO: Log the error event (VoucherGenerationFailed)
                    var voucherGeneratedEvent = new VoucherGeneratedEvent()
                    {
                        EventId         = Guid.NewGuid(), EventTime = DateTime.Now, MerchantId = voucherRequest.MerchantId,
                        NumberGenerated = numOfVouchersCreated, Message = "New Vouchers created"
                    };

                    _logger.LogInformation("Created {Number}: vouchers for {Merchant} :{@Event}",
                                           numOfVouchersCreated, voucherRequest.MerchantId, voucherGeneratedEvent);

                    //handle the error here; what should happen, try again or what
                    return(null);
                }

                else
                {
                    numOfVouchersCreated += await _valueVoucherService.CreateValueVoucher(voucherRequest);
                }

                //Log the event (Voucher Created)
                _logger.LogInformation("Created {Number}: vouchers for {Merchant}",
                                       numOfVouchersCreated, voucherRequest.MerchantId);

                return(numOfVouchersCreated);
            }
            catch (VoucherCreateException ex) //something happened handle it
                                              //if some error occurred and not all voucher could be created log the error
            {
                //Log the error
                _logger.LogError(ex, "An error occured while creating vouchers for {Merchant}", voucherRequest.MerchantId);
                return(null);
            }
        }
Ejemplo n.º 17
0
        /// <summary>
        /// خرید کارت شارژ
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public async Task <ServiceResultClient> VoucherRequestAsync(VoucherRequest model)
        {
            return(null);

            //try
            //{
            //    var voucher = new Voucher();

            // var voucherCpIn = new voucherCpIn()
            //    {
            //        authInfo = new authInfo()
            //        {
            //            userName = Request.AuthInfo.Username,
            //            password = Request.AuthInfo.Password
            //        }
            //    };

            //    voucher.MerchantID = voucherCpIn.MerchantID = Request.MerchantID;
            //    voucher.TerminalID = voucherCpIn.TerminalID = Request.TerminalID;
            //    voucher.Date = voucherCpIn.Date = Request.Date;
            //    voucher.Time = voucherCpIn.Time = Request.Time;
            //    voucher.LocalIP = voucherCpIn.localIP = Request.LocalIP;
            //    voucher.PAN = voucherCpIn.PAN = model.PAN;
            //    voucherCpIn.PINBlock = model.PINBlock;
            //    voucher.Serial = voucherCpIn.Serial = Request.Serial;
            //    voucher.STAN = voucherCpIn.STAN = Request.STAN;
            //    voucherCpIn.track2Ciphered = model.Track2Ciphered;
            //    voucherCpIn.custMobile = Request.Mobile;
            //    voucher.InvoiceNo = voucherCpIn.invoiceNo = Request.InvoiceNo;
            //    voucher.Amount = voucherCpIn.amount = model.Amount;
            //    voucherCpIn.profileId = model.profileId;
            //    voucherCpIn.OrderType = 1;

            //    SoapMobileClient soapMobileClient = new SoapMobileClient();

            //    voucher voucherMTNCpSingle = null;
            //    if (new[] { "19", "20" }.Contains(model.profileId))
            //    {
            //        voucherMTNCpSingle = soapMobileClient.voucherMTNCPSingle(voucherCpIn);
            //    }
            //    else if (new[] { "3", "4", "5", "6", "8", "41", "42" }.Contains(model.profileId))
            //    {
            //        voucherMTNCpSingle = soapMobileClient.voucherSetavalCPSingle(voucherCpIn);
            //    }
            //    var resultRequestCPMessage = TransactionMessage(voucherMTNCpSingle.responseCode, voucherMTNCpSingle.responseMsg);
            //    if (resultRequestCPMessage.Status != TransactionStatus.SuccessfulTransaction.ToString())
            //    {
            //        voucher.Success = false;
            //        var resultLog = await InsertLog(voucher);
            //        voucher.RefNo = voucherMTNCpSingle.RefNo;
            //        voucher.Amount = voucherMTNCpSingle.responseMsg;
            //        return resultRequestCPMessage;
            //    }
            //    else
            //    {
            //        var settleReverseIn = new settleReverseIn()
            //        {
            //            authInfo = voucherCpIn.authInfo,
            //            custMobile = voucherCpIn.custMobile,
            //            Date = voucherCpIn.Date,
            //            localIP = voucherCpIn.localIP,
            //            MerchantID = voucherCpIn.MerchantID,
            //            orgRefNo = voucherMTNCpSingle.RefNo,
            //            TerminalID = voucherCpIn.TerminalID,
            //            Serial = voucherCpIn.Serial,
            //            Time = voucherCpIn.Time,
            //            orgAmount = voucherCpIn.amount,
            //            STAN = voucherCpIn.STAN,
            //            version = voucherCpIn.version
            //        };

            //        if (new[] { "19", "20" }.Contains(model.profileId))
            //        {
            //            settleReverseIn.transType = "vouchermtn";
            //        }
            //        else if (new[] { "3", "4", "5", "6", "8", "41", "42" }.Contains(model.profileId))
            //        {
            //            settleReverseIn.transType = "vouchersetaval";
            //        }

            //        var resultSettlement = soapMobileClient.settlement(settleReverseIn);
            //        var resultSettlementMessage = TransactionMessage(resultSettlement.responseCode, resultSettlement.responseMsg);

            //        resultSettlementMessage.ClientRefNo = settleReverseIn.STAN;
            //        resultSettlementMessage.Date = settleReverseIn.Date;
            //        resultSettlementMessage.RefNo = settleReverseIn.orgRefNo;
            //        resultSettlementMessage.Time = settleReverseIn.Time;

            //        voucher.Success = true;
            //        var resultLog = await InsertLog(voucher);

            //        return resultSettlementMessage;
            //    }
            //}
            //catch (Exception)
            //{
            //    return AppGlobal.ServiceResultClientInstance(true, "عملیات نا موفق");
            //}
        }
 public async Task <ServiceResultClient> VoucherRequest(VoucherRequest model)
 {
     return(await TransactionService.VoucherRequestAsync(model));
 }
Ejemplo n.º 19
0
        //helper method
        public List <Pet> CreateMockPetData()
        {
            List <Pet> mockPets = new List <Pet>();

            string   testClientID   = "001";
            DateTime?petDateOfBirth = null;

            Pet pet = new Pet("Test Dog 1", "Dog", "Male", petDateOfBirth, "Large", testClientID);

            pet.PetID = 1;


            DateTime decisionDate = new DateTime(2020, 10, 1);

            VoucherRequest voucherRequest = new VoucherRequest("Denied", 1);

            voucherRequest.RequestDecisionDate = decisionDate;
            pet.VoucherRequestsForPet.Add(voucherRequest);
            voucherRequest.RequestForPet = pet;

            voucherRequest = new VoucherRequest("Pending", 1);
            pet.VoucherRequestsForPet.Add(voucherRequest);
            voucherRequest.RequestForPet = pet;

            mockPets.Add(pet);

            petDateOfBirth = new DateTime(2015, 11, 10);

            pet       = new Pet("Test Dog 2", "Dog", "Female", petDateOfBirth, "Medium", testClientID);
            pet.PetID = 2;

            decisionDate = new DateTime(2020, 10, 15);

            voucherRequest = new VoucherRequest("Denied", 2);
            voucherRequest.RequestDecisionDate = decisionDate;
            pet.VoucherRequestsForPet.Add(voucherRequest);
            voucherRequest.RequestForPet = pet;

            decisionDate = new DateTime(2020, 11, 25);

            voucherRequest = new VoucherRequest("Approved", 2);
            voucherRequest.RequestDecisionDate = decisionDate;
            pet.VoucherRequestsForPet.Add(voucherRequest);
            voucherRequest.RequestForPet = pet;

            mockPets.Add(pet);

            petDateOfBirth = new DateTime(2018, 10, 15);
            testClientID   = "002";



            pet       = new Pet("Test Cat 1", "Cat", "Female", petDateOfBirth, null, testClientID);
            pet.PetID = 3;

            decisionDate = new DateTime(2020, 10, 15);

            voucherRequest = new VoucherRequest("Denied", 3);
            voucherRequest.RequestDecisionDate = decisionDate;
            pet.VoucherRequestsForPet.Add(voucherRequest);
            voucherRequest.RequestForPet = pet;

            mockPets.Add(pet);

            pet       = new Pet("Test Dog 3", "Dog", "Female", petDateOfBirth, "Medium", testClientID);
            pet.PetID = 4;

            decisionDate = new DateTime(2020, 11, 25);

            voucherRequest = new VoucherRequest("Approved", 2);
            voucherRequest.RequestDecisionDate = decisionDate;
            pet.VoucherRequestsForPet.Add(voucherRequest);
            voucherRequest.RequestForPet = pet;

            mockPets.Add(pet);

            return(mockPets);
        }
Ejemplo n.º 20
0
 public ActionResult GetFilteredVouchers([FromQuery] VoucherRequest request)
 {
     return(Ok(_customerGiftVoucherService.GetAllVouchers(request)));
 }
        //signature of a method?
        //accessType returnType MethodName(parameterType param1, parameterType param2) number, dataType, order

        //class methods / object or instance methods
        public static void Initialize(IServiceProvider services)
        {
            //Three services
            //1. databases
            ApplicationDbContext database = services.GetRequiredService <ApplicationDbContext>();

            //2. Roles
            // In startup.cs
            //.AddRoles<IdentityRole>() on line 34
            RoleManager <IdentityRole> roleManager = services.GetRequiredService <RoleManager <IdentityRole> >();

            //3. Users
            //In startup.cs (change on line 33: IdentityUser to ApplicationUser)
            //In _LoginPartial.cshtml (change lines 2 and 3 identityUser to ApplicationUser)
            UserManager <ApplicationUser> userManager = services.GetRequiredService <UserManager <ApplicationUser> >();

            string clientRole        = "Client";
            string volunteerRole     = "Volunteer";
            string administratorRole = "Administrator";


            if (!database.Roles.Any())
            {
                IdentityRole role = new IdentityRole(clientRole);
                roleManager.CreateAsync(role).Wait();

                role = new IdentityRole(volunteerRole);
                roleManager.CreateAsync(role).Wait();

                role = new IdentityRole(administratorRole);
                roleManager.CreateAsync(role).Wait();
            }

            if (!database.ApplicationUser.Any())
            {
                Client client = new Client("Test", "Client1", "1 Client1 Address", "3040000001", "*****@*****.**", "TestClient1");
                userManager.CreateAsync(client).Wait();
                userManager.AddToRoleAsync(client, clientRole).Wait();//all async methods need to have the .wait() attached

                client = new Client("Test", "Client2", "2 Client2 Address", "3040000002", "*****@*****.**", "TestClient2");
                userManager.CreateAsync(client).Wait();
                userManager.AddToRoleAsync(client, clientRole).Wait();

                Volunteer volunteer = new Volunteer("Test", "Volunteer1", "1 Volunteer1 Address", "3040000003", "*****@*****.**", "TestVolunteer1", 10);
                userManager.CreateAsync(volunteer).Wait();
                userManager.AddToRoleAsync(volunteer, volunteerRole).Wait();
                userManager.AddToRoleAsync(volunteer, administratorRole).Wait();

                volunteer = new Volunteer("Test", "Volunteer2", "2 Volunteer2 Address", "3040000004", "*****@*****.**", "TestVolunteer2", 10);
                userManager.CreateAsync(volunteer).Wait();
                userManager.AddToRoleAsync(volunteer, volunteerRole).Wait();

                ApplicationUser applicationUser = new ApplicationUser("Test", "Administrator1", "1 Administrator1 Address", "3040000005", "*****@*****.**", "TestAdministrator1");
                userManager.CreateAsync(applicationUser).Wait();
                userManager.AddToRoleAsync(applicationUser, administratorRole).Wait();
            }


            //conditional operators
            //lovical operators: &&, ||, ! (not)
            //relational: <, >, >=, ==
            if (!database.Pet.Any()) //Does the Pet table have any data in it? yes
            {
                DateTime?dateOfBirth = new DateTime(2015, 6, 15);

                //LINQ's Lambda Expression (C#  Queries)
                Client client = database.Client.Where(c => c.Email == "*****@*****.**").FirstOrDefault();

                string clientID = client.Id;

                Pet pet = new Pet("James", "Dog", "Male", dateOfBirth, "Large", clientID);
                database.Pet.Add(pet);
                database.SaveChanges();

                dateOfBirth = null;

                pet = new Pet("Cleo", "Cat", "Female", dateOfBirth, null, clientID);
                database.Pet.Add(pet);
                database.SaveChanges();

                client   = database.Client.Where(c => c.Email == "*****@*****.**").FirstOrDefault();
                clientID = client.Id;

                dateOfBirth = new DateTime(2018, 6, 10);

                pet = new Pet("Chuck", "Dog", "Male", dateOfBirth, "Small", clientID);
                database.Pet.Add(pet);
                database.SaveChanges();

                dateOfBirth = new DateTime(2020, 3, 26);

                pet = new Pet("Jamie", "Dog", "Female", dateOfBirth, "Large", clientID);
                database.Pet.Add(pet);
                database.SaveChanges();

                dateOfBirth = new DateTime(2018, 4, 25);

                pet = new Pet("Larry", "Cat", "Male", dateOfBirth, null, clientID);
                database.Pet.Add(pet);
                database.SaveChanges();
            }

            if (!database.VoucherRequest.Any())
            {
                VoucherRequest voucherRequest = new VoucherRequest("Denied", 1);
                voucherRequest.RequestDecisionDate = new DateTime(2020, 10, 04);
                database.VoucherRequest.Add(voucherRequest);
                database.SaveChanges();

                voucherRequest = new VoucherRequest("Denied", 2);
                voucherRequest.RequestDecisionDate = new DateTime(2020, 10, 10);
                database.VoucherRequest.Add(voucherRequest);
                database.SaveChanges();

                voucherRequest = new VoucherRequest("Approved", 1);
                voucherRequest.RequestDecisionDate = new DateTime(2020, 10, 09);
                database.VoucherRequest.Add(voucherRequest);
                database.SaveChanges();

                voucherRequest = new VoucherRequest("Pending", 2);
                database.VoucherRequest.Add(voucherRequest);
                database.SaveChanges();

                voucherRequest = new VoucherRequest("Pending", 3);
                database.VoucherRequest.Add(voucherRequest);
                database.SaveChanges();

                voucherRequest = new VoucherRequest("Approved", 4);
                voucherRequest.RequestDecisionDate = new DateTime(2020, 10, 01);
                database.VoucherRequest.Add(voucherRequest);
                database.SaveChanges();

                voucherRequest = new VoucherRequest("Approved", 5);
                voucherRequest.RequestDecisionDate = new DateTime(2020, 10, 29);
                database.VoucherRequest.Add(voucherRequest);
                database.SaveChanges();

                //add five more requests (2 pets - 2 requests (first request was denied)
            }
            if (!database.Fund.Any())
            {
                Fund fund = new Fund("Any Fund 1", null, 2000);
                database.Fund.Add(fund);
                database.SaveChanges();

                fund = new Fund("Cat Fund 1", "Cat", null);
                database.Fund.Add(fund);
                database.SaveChanges();

                fund = new Fund("Dog Fund 1", "Dog", 5000);
                database.Fund.Add(fund);
                database.SaveChanges();

                fund = new Fund("Male Fund 1", "Male", 900);
                database.Fund.Add(fund);
                database.SaveChanges();

                fund = new Fund("Female Fund 1", "Female", 4000);
                database.Fund.Add(fund);
                database.SaveChanges();

                fund = new Fund("Large Dog Fund 1", "Large Dog", 500);
                database.Fund.Add(fund);
                database.SaveChanges();

                fund = new Fund("Any Fund 7", null, 700);
                database.Fund.Add(fund);
                database.SaveChanges();

                fund = new Fund("Any Fund 8", null, 3000);
                database.Fund.Add(fund);
                database.SaveChanges();

                fund = new Fund("Any Fund 9", null, 6000);
                database.Fund.Add(fund);
                database.SaveChanges();

                fund = new Fund("Any Fund 10", "Any", null);
                database.Fund.Add(fund);
                database.SaveChanges();
            }
            if (!database.FundCriteria.Any())
            {
                int          fundID       = 2;
                FundCriteria fundCriteria = new FundCriteria(fundID, "Morgantown", null, null, "Cat");
                database.FundCriteria.Add(fundCriteria);
                database.SaveChanges();

                Fund fund = database.Fund.Find(fundID);
                fund.FundCriteriaID = 1;
                database.Fund.Update(fund);
                database.SaveChanges();

                fundID       = 3;
                fundCriteria = new FundCriteria(fundID, "Morgantown", null, null, "Dog");
                database.FundCriteria.Add(fundCriteria);
                database.SaveChanges();

                fund = database.Fund.Find(fundID);
                fund.FundCriteriaID = 2;
                database.Fund.Update(fund);
                database.SaveChanges();

                fundID       = 4;
                fundCriteria = new FundCriteria(fundID, "Morgantown", "Male", null, null);
                database.FundCriteria.Add(fundCriteria);
                database.SaveChanges();

                fund = database.Fund.Find(fundID);
                fund.FundCriteriaID = 3;
                database.Fund.Update(fund);
                database.SaveChanges();

                fundID       = 5;
                fundCriteria = new FundCriteria(fundID, "Morgantown", "Female", null, null);
                database.FundCriteria.Add(fundCriteria);
                database.SaveChanges();

                fund = database.Fund.Find(fundID);
                fund.FundCriteriaID = 4;
                database.Fund.Update(fund);
                database.SaveChanges();

                fundID       = 6;
                fundCriteria = new FundCriteria(fundID, "Morgantown", null, "Large", "Dog");
                database.FundCriteria.Add(fundCriteria);
                database.SaveChanges();

                fund = database.Fund.Find(fundID);
                fund.FundCriteriaID = 5;
                database.Fund.Update(fund);
                database.SaveChanges();
            }
            if (!database.FundForVoucher.Any())
            {
                FundForVoucher fundForVoucher = new FundForVoucher(3, 6, 100);
                database.FundForVoucher.Add(fundForVoucher);
                database.SaveChanges();

                fundForVoucher = new FundForVoucher(6, 6, 100);
                database.FundForVoucher.Add(fundForVoucher);
                database.SaveChanges();

                fundForVoucher = new FundForVoucher(7, 2, 50);
                database.FundForVoucher.Add(fundForVoucher);
                database.SaveChanges();
            }
        } //end initialize method