Example #1
0
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            SetContentView(Resource.Layout.profile_view);

            // hide keyboard when last editText lost focus
            FieldsService.LostFocusFromField(Resource.Id.zip_code_editText);
        }
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            SetContentView(Resource.Layout.registration_view);

            // hide keyboard when last editText lost focus
            FieldsService.LostFocusFromField(Resource.Id.phoneNumber_editText);
        }
Example #3
0
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            SetContentView(Resource.Layout.license_view);

            // hide keyboard when last field lost focus
            FieldsService.LostFocusFromField(Resource.Id.license_spinner_vehicle_class);
        }
        public IHttpActionResult ChangeUserData(UpdateUserDataRequest model)
        {
            GeneralResponse             oResponse     = new GeneralResponse();
            FieldsService               oFieldService = new FieldsService();
            Dictionary <string, string> oErrors       = oFieldService.ValidateModel(ModelState);

            try
            {
                if (oErrors.Count != 0)
                {
                    throw new ArgumentException("Error, campos invalidos");
                }


                var    claims = ClaimsPrincipal.Current.Identities.First().Claims.ToList();
                string UserId = claims?.FirstOrDefault(x => x.Type.Equals(ClaimTypes.Sid, StringComparison.OrdinalIgnoreCase))?.Value;

                UserManager oUserManager = new UserManager();
                oUserManager.UpdateDataByUserId(UserId, model.PhoneNumber, model.Email);

                User oUser = oUserManager.GetByUserId(UserId);

                var oUserResponse = new
                {
                    Cuil        = oUser.Cuil,
                    Name        = oUser.Name,
                    Surname     = oUser.Surname,
                    Email       = oUser.Email,
                    PhoneNumber = oUser.PhoneNumber,
                };

                oResponse.Success = 1;
                oResponse.Message = "Exito - se han registrado los nuevos datos del usuario";
                oResponse.Data    = oUserResponse;

                return(Content(HttpStatusCode.OK, oResponse));
            } catch (ArgumentException ex)
            {
                oResponse.Success = 0;
                oResponse.Message = ex.Message;
                oResponse.Data    = oErrors;

                return(Content(HttpStatusCode.BadRequest, oResponse));
            }
            catch (Exception ex)
            {
                oResponse.Success = 0;
                oResponse.Message = "Error - no se ha podido registrar los nuevos datos del usuario";
                oResponse.Data    = ex.Message;

                return(Content(HttpStatusCode.BadRequest, oResponse));
            }
        }
        public void FieldExistsByNameShouldReturnFalse()
        {
            var options = new DbContextOptionsBuilder <FooteoDbContext>()
                          .UseInMemoryDatabase(databaseName: "FieldExists_Fields_DB")
                          .Options;

            var dbContext = new FooteoDbContext(options);

            var townsService  = new TownsService(dbContext);
            var fieldsService = new FieldsService(dbContext, townsService);

            fieldsService.CreateField("Field", "Address", true, "Burgas");

            var fieldNameForTest = "Field1";
            var fieldExists      = fieldsService.FieldExistsByName(fieldNameForTest);

            Assert.False(fieldExists);
        }
        public void CreateFieldShouldReturnCorrectCountOfFields()
        {
            var options = new DbContextOptionsBuilder <FooteoDbContext>()
                          .UseInMemoryDatabase(databaseName: "CreateField_Fields_DB")
                          .Options;

            var dbContext = new FooteoDbContext(options);

            var townsService  = new TownsService(dbContext);
            var fieldsService = new FieldsService(dbContext, townsService);

            for (int i = 1; i <= 20; i++)
            {
                fieldsService.CreateField($"Field{i}", $"Address{i}", false, "Sofia");
            }

            var fieldsCount         = dbContext.Fields.CountAsync().Result;
            var expectedFieldsCount = 20;

            Assert.AreEqual(expectedFieldsCount, fieldsCount);
        }
        public void AllFieldsShouldReturnCorrectFieldsCount()
        {
            var options = new DbContextOptionsBuilder <FooteoDbContext>()
                          .UseInMemoryDatabase(databaseName: "AllFields_Fields_DB")
                          .Options;

            var dbContext = new FooteoDbContext(options);

            var townsService  = new TownsService(dbContext);
            var fieldsService = new FieldsService(dbContext, townsService);

            for (int i = 1; i <= 10; i++)
            {
                fieldsService.CreateField($"Field{i}", $"Address{i}", false, "Sofia");
            }

            var fields = fieldsService.AllFields <FieldViewModel>().ToList();

            var expectedFieldsCount = 10;

            Assert.AreEqual(expectedFieldsCount, fields.Count);
        }
Example #8
0
        public IHttpActionResult Post(CreditCardDepositRequest model)
        {
            GeneralResponse oResponse       = new GeneralResponse();
            DepositManager  oDepositManager = new DepositManager();
            AccountManager  oAccountManager = new AccountManager();
            FieldsService   oFieldsService  = new FieldsService();

            try
            {
                Dictionary <string, string> oErrors = oFieldsService.ValidateModel(ModelState);
                if (oErrors.Count != 0)
                {
                    oResponse.Success = 0;
                    oResponse.Message = "Error, campos invalidos";
                    oResponse.Data    = oErrors;

                    return(Content(HttpStatusCode.BadRequest, oResponse));
                }

                var            claims    = ClaimsPrincipal.Current.Identities.First().Claims.ToList();
                string         UserId    = claims?.FirstOrDefault(x => x.Type.Equals(ClaimTypes.Sid, StringComparison.OrdinalIgnoreCase))?.Value;
                List <Account> oAccounts = oAccountManager.GetUserAccountsByUserId(Convert.ToInt32(UserId));

                if (!oAccounts.Where(m => m.AccountId == model.DebitAccountId).Select(c => c).Any())
                {
                    throw new ArgumentException("La cuenta a la que desea depositar no pertenece al usuario logeado");
                }
                ;

                CreditCardDetector detector = new CreditCardDetector(model.CreditCardNumber);

                if (!detector.IsValid())
                {
                    throw new ArgumentException("Los datos de la tarjeta de credito no son valdios");
                }

                oDepositManager.DepositWithCreditCard(model.Amount, model.DebitAccountId, model.FullName, model.CreditCardNumber.Substring(model.CreditCardNumber.Length - 4), model.DocumentNumber, model.ExpirationDate);
                oAccountManager.UpdateAccountBalance(model.DebitAccountId, model.Amount);

                oResponse.Success = 1;
                oResponse.Message = "Exito - se ha realizado el deposito correctamente";

                return(Content(HttpStatusCode.OK, oResponse));
            }
            catch (ArgumentException ex)
            {
                oResponse.Success = 0;
                oResponse.Message = "Error - no se ha podido realizar el deposito";
                oResponse.Data    = ex.Message;

                return(Content(HttpStatusCode.BadRequest, oResponse));
            }
            catch (Exception ex)
            {
                oResponse.Success = 0;
                oResponse.Message = "Error - no se ha podido realizar el deposito";
                oResponse.Data    = ex.Message;

                return(Content(HttpStatusCode.BadRequest, oResponse));
            }
        }
        public void RefereeAttendToMatchShouldNotReturnNull()
        {
            var options = new DbContextOptionsBuilder <FooteoDbContext>()
                          .UseInMemoryDatabase(databaseName: "AttendToMatch_Referees_DB")
                          .Options;

            var dbContext    = new FooteoDbContext(options);
            var townsService = new TownsService(dbContext);

            var town = townsService.CreateTown("Burgas");

            var user = new FooteoUser
            {
                Age          = new Random().Next(20, 30),
                Email        = $"*****@*****.**",
                FirstName    = "Footeo",
                LastName     = "Referee",
                UserName     = $"footeoReferee",
                Town         = town,
                PasswordHash = "123123"
            };

            dbContext.Users.Add(user);
            dbContext.SaveChanges();

            var userHT = new FooteoUser
            {
                Age          = new Random().Next(20, 30),
                Email        = $"*****@*****.**",
                FirstName    = "Footeo",
                LastName     = "Player",
                UserName     = $"footeoPlayer",
                Town         = town,
                PasswordHash = "123123",
                Player       = new Player
                {
                    FullName = "Footeo Player"
                }
            };

            dbContext.Users.Add(userHT);
            dbContext.SaveChanges();

            var userAT = new FooteoUser
            {
                Age          = new Random().Next(20, 30),
                Email        = $"*****@*****.**",
                FirstName    = "Footeo",
                LastName     = "Player",
                UserName     = $"footeoPlayer2",
                Town         = town,
                PasswordHash = "123123",
                Player       = new Player
                {
                    FullName = "Footeo Player"
                }
            };

            dbContext.Users.Add(userAT);
            dbContext.SaveChanges();

            var mockUserStore = new Mock <IUserStore <FooteoUser> >();
            var userManager   = new Mock <UserManager <FooteoUser> >(mockUserStore.Object, null, null, null, null, null, null, null, null);

            userManager.Setup(u => u.RemoveFromRoleAsync(userHT, "Player")).Returns(Task.FromResult(IdentityResult.Success));
            userManager.Setup(u => u.AddToRoleAsync(userHT, "PlayerInTeam")).Returns(Task.FromResult(IdentityResult.Success));
            userManager.Setup(u => u.AddToRoleAsync(userHT, "Captain")).Returns(Task.FromResult(IdentityResult.Success));

            userManager.Setup(u => u.RemoveFromRoleAsync(userAT, "Player")).Returns(Task.FromResult(IdentityResult.Success));
            userManager.Setup(u => u.AddToRoleAsync(userAT, "PlayerInTeam")).Returns(Task.FromResult(IdentityResult.Success));
            userManager.Setup(u => u.AddToRoleAsync(userAT, "Captain")).Returns(Task.FromResult(IdentityResult.Success));

            var fieldsService      = new FieldsService(dbContext, townsService);
            var leaguesService     = new LeaguesService(dbContext, townsService);
            var teamsService       = new TeamsService(dbContext, townsService, leaguesService, userManager.Object, null);
            var teamLeaguesService = new TeamLeaguesService(dbContext, teamsService, leaguesService);
            var fixturesService    = new FixturesService(dbContext, leaguesService);
            var matchesService     = new MatchesService(dbContext, fixturesService, teamsService);
            var refereesService    = new RefereesService(dbContext, matchesService, teamLeaguesService);

            var referee = new Referee
            {
                FullName = $"Footeo Referee"
            };

            refereesService.CreateReferee(user, referee);

            townsService.CreateTown("Sofia");
            leaguesService.CreateLeague("League", "Desc", DateTime.UtcNow, DateTime.UtcNow.AddMonths(3), "Sofia");

            teamsService.CreateTeam("Home Team", "HT", userHT.UserName);
            teamsService.CreateTeam("Away Team", "AT", userAT.UserName);

            var league = dbContext.Leagues.FirstOrDefault(n => n.Name == "League");

            teamLeaguesService.JoinLeague(userHT.UserName, league.Id);
            teamLeaguesService.JoinLeague(userAT.UserName, league.Id);

            fixturesService.CreateFixture("Matchday", DateTime.UtcNow.AddDays(7), league.Id);
            var fixture = dbContext.Fixtures.FirstOrDefault(n => n.Name == "Matchday");

            fieldsService.CreateField("Field", "Address", true, "Sofia");
            var field = dbContext.Fields.FirstOrDefault(n => n.Name == "Field");

            matchesService.CreateMatch(userHT.Player.Team.Id, userAT.Player.Team.Id, field.Id, fixture.Id);
            var match = dbContext.Matches.FirstOrDefault();

            refereesService.AttendAMatch(user.UserName, match.Id);

            Assert.NotNull(match.Referee);
        }
Example #10
0
        public IHttpActionResult Post([FromBody] TransferRequest model)
        {
            GeneralResponse oResponse        = new GeneralResponse();
            AccountManager  oAccountManager  = new AccountManager();
            TransferManager oTransferManager = new TransferManager();
            FieldsService   oFieldsService   = new FieldsService();

            var claims = ClaimsPrincipal.Current.Identities.First().Claims.ToList();

            string UserId = claims?.FirstOrDefault(x => x.Type.Equals(ClaimTypes.Sid, StringComparison.OrdinalIgnoreCase))?.Value;

            try
            {
                Dictionary <string, string> oErrors = oFieldsService.ValidateModel(ModelState);
                if (oErrors.Count != 0)
                {
                    oResponse.Success = 0;
                    oResponse.Message = "Error, campos invalidos";
                    oResponse.Data    = oErrors;

                    return(Content(HttpStatusCode.BadRequest, oResponse));
                }


                Account oDebitAccount = new Account();

                oDebitAccount = oAccountManager.GetAccountById(model.DebitAccountId);

                if (oDebitAccount.AccountId == null)
                {
                    throw new ArgumentException("Cuenta de debito no existente");
                }
                ;
                if (Convert.ToString(oDebitAccount.User.UserId) != UserId)
                {
                    throw new ArgumentException("No se puede transferir dinero desde una cuenta que no pertenece al usuario logeado");
                }
                ;
                if (oDebitAccount.Balance < model.Amount)
                {
                    throw new ArgumentException("No tiene el saldo suficiente para realizar esta transferencia");
                }
                ;

                Account oCreditAccount = new Account();
                oCreditAccount = oAccountManager.GetAccountById(model.CreditAccountId);

                if (oCreditAccount.AccountId == null)
                {
                    throw new ArgumentException("Cuenta de credito no existente");
                }
                ;

                oTransferManager.MakeTransfer(oDebitAccount, model.CreditAccountId, model.Amount, model.Concept);
                oAccountManager.UpdateAccountBalance((int)oDebitAccount.AccountId, -model.Amount);
                oAccountManager.UpdateAccountBalance(model.CreditAccountId, model.Amount);
                oResponse.Success = 1;
                oResponse.Message = "Exito - Transferencia realizada";

                return(Content(HttpStatusCode.OK, oResponse));
            } catch (ArgumentException ex)
            {
                oResponse.Success = 0;
                oResponse.Message = "Error - " + ex.Message;
                return(Content(HttpStatusCode.BadRequest, oResponse));
            } catch (Exception ex)
            {
                oResponse.Success = 0;
                oResponse.Message = ex.Message;
                return(Content(HttpStatusCode.BadRequest, oResponse));
            }
        }