public HttpResponseMessage Post(ExerciseDescRequest registrationRequest)
        {
            ToeTrackerTrainerMobContext context = new ToeTrackerTrainerMobContext();
            ExerciseDesc account = context.ExerciseDesc.Where(a => a.ExerciseName == registrationRequest.ExerciseName).SingleOrDefault();

            if (account != null)
            {
                return(this.Request.CreateResponse(HttpStatusCode.BadRequest, "This exercise already exists"));
            }
            else
            {
                byte[]       salt       = CustomLoginProviderUtils.generateSalt();
                ExerciseDesc newAccount = new ExerciseDesc
                {
                    Id                = Guid.NewGuid().ToString(),
                    ExerciseName      = registrationRequest.ExerciseName,
                    ExerciseDescID    = registrationRequest.ExerciseId,
                    MuscleDescID      = registrationRequest.MuscleId,
                    SecondaryMuslceId = registrationRequest.SecondaryMuslceId,
                    Unit1             = registrationRequest.Unit1,
                    Unit2             = registrationRequest.Unit2,
                    Unit3             = registrationRequest.Unit3
                };
                context.ExerciseDesc.Add(newAccount);
                context.SaveChanges();
                return(this.Request.CreateResponse(HttpStatusCode.Created));
            }
        }
        protected override void Initialize(HttpControllerContext controllerContext)
        {
            base.Initialize(controllerContext);
            ToeTrackerTrainerMobContext context = new ToeTrackerTrainerMobContext();

            DomainManager = new EntityDomainManager <ExcerciseInput>(context, Request, Services);
        }
        // POST api/CustomLogin
        public HttpResponseMessage Post(LoginRequest loginRequest)
        {
            ToeTrackerTrainerMobContext context = new ToeTrackerTrainerMobContext();
            Account account = context.Accounts
                              .Where(a => a.Username == loginRequest.username).SingleOrDefault();

            if (account != null)
            {
                byte[] incoming = CustomLoginProviderUtils
                                  .hash(loginRequest.password, account.Salt);

                if (CustomLoginProviderUtils.slowEquals(incoming, account.SaltedAndHashedPassword))
                {
                    ClaimsIdentity claimsIdentity = new ClaimsIdentity();
                    claimsIdentity.AddClaim(new Claim(ClaimTypes.NameIdentifier, loginRequest.username));

                    LoginResult loginResult = new CustomLoginProvider(handler)
                                              .CreateLoginResult(claimsIdentity, Services.Settings.MasterKey);
                    var customLoginResult = new CustomLoginResult()
                    {
                        UserId = loginResult.User.UserId,
                        MobileServiceAuthenticationToken = loginResult.AuthenticationToken,
                        UserType = account.Trainer == true ? "Trainer" : "Trainee"
                    };
                    return(this.Request.CreateResponse(HttpStatusCode.OK, customLoginResult));
                }
            }
            return(this.Request.CreateResponse(HttpStatusCode.Unauthorized,
                                               "Invalid username or password"));
        }
        // GET api/EnterExerciseActivity
        public HttpResponseMessage Post(ExcerciseInput execInput)
        {
            ToeTrackerTrainerMobContext context = new ToeTrackerTrainerMobContext();

            execInput.Id = Guid.NewGuid().ToString(); context.ExcerciseInputs.Add(execInput);
            context.SaveChanges();
            return(this.Request.CreateResponse(HttpStatusCode.Created, "Success"));
        }
        // GET api/GetMuscles
        public string Get()
        {
            ToeTrackerTrainerMobContext context = new ToeTrackerTrainerMobContext();
            List <MuscleDesc>           muscles = context.MuscleDesc.ToList <MuscleDesc>();
            List <BodyAreaDesc>         bdArea  = context.BodyAreaDesc.ToList <BodyAreaDesc>();
            string strJson = "{";

            foreach (BodyAreaDesc ba in bdArea)
            {
                strJson += "\"" + ba.BodyAreaName + "\":";
                string [] ms = muscles.Where(x => x.BodyAreaDescID == ba.BodyAreaDescID).Select(x => x.MuscleDescName).ToArray();
                strJson += "\"" + String.Join(",", ms) + "\",";
            }

            strJson  = strJson.Substring(0, strJson.Length - 1);
            strJson += "}";
            return(strJson);
        }
Пример #6
0
        // POST tables/TrainerAssociation
        public async Task <IHttpActionResult> PostTrainerAssociation(TrainerAssociation item)
        {
            ToeTrackerTrainerMobContext context = new ToeTrackerTrainerMobContext();
            var currentUser = User as ServiceUser;

            item.TrainerID = currentUser.Id;
            item.Id        = System.Guid.NewGuid().ToString();
            item.Active    = true;
            item.StartDate = DateTime.Now;
            item.EndDate   = DateTime.Now.AddYears(100);
            if (context.Accounts.Where(x => x.Username == item.TraineeID).Count() > 0)
            {
                TrainerAssociation current = await InsertAsync(item);

                return(CreatedAtRoute("Tables", new { id = current.Id }, current));
            }
            else
            {
                throw new Exception("The trainee is not registered, please register the trainee");
            }
        }
Пример #7
0
        // POST api/CustomRegistration
        public HttpResponseMessage Post(RegistrationRequest registrationRequest)
        {
            if (!Regex.IsMatch(registrationRequest.username, "^[a-zA-Z0-9]{4,}$"))
            {
                return(this.Request.CreateResponse(HttpStatusCode.BadRequest, "Invalid username (at least 4 chars, alphanumeric only)"));
            }
            else if (registrationRequest.password.Length < 8)
            {
                return(this.Request.CreateResponse(HttpStatusCode.BadRequest, "Invalid password (at least 8 chars required)"));
            }

            ToeTrackerTrainerMobContext context = new ToeTrackerTrainerMobContext();
            Account account = context.Accounts.Where(a => a.Username == registrationRequest.username).SingleOrDefault();

            if (account != null)
            {
                return(this.Request.CreateResponse(HttpStatusCode.BadRequest, "That username already exists."));
            }
            else
            {
                byte[]  salt       = CustomLoginProviderUtils.generateSalt();
                Account newAccount = new Account
                {
                    Id       = Guid.NewGuid().ToString(),
                    Username = registrationRequest.username,
                    Salt     = salt,
                    SaltedAndHashedPassword = CustomLoginProviderUtils.hash(registrationRequest.password, salt),
                    FirstName = registrationRequest.FirstName,
                    LastName  = registrationRequest.LastName,
                    Phone     = registrationRequest.Phone,
                    Address   = registrationRequest.Address,
                    Email     = registrationRequest.Email,
                    Trainer   = registrationRequest.Trainer
                };
                context.Accounts.Add(newAccount);
                context.SaveChanges();
                return(this.Request.CreateResponse(HttpStatusCode.Created, "{\"UserCreation\":\"Success\"}"));
            }
        }