Beispiel #1
0
        public static async Task <IActionResult> Run([HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req)
        {
            //Driver user = await req.Content.ReadAsAsync<Driver>();

            //req.IsValidToken();

            string requestBody = new StreamReader(req.Body).ReadToEnd();
            Driver user        = JsonConvert.DeserializeObject <Driver>(requestBody);

            await DriverRepository <Driver> .Initialize();

            if (user == null)
            {
                return((ActionResult) new OkObjectResult("User cannot be null or empty"));
            }

            if (string.IsNullOrEmpty(user.Email))
            {
                return((ActionResult) new OkObjectResult("An email address is needed for this request"));
            }

            try
            {
                var udb = DriverRepository <Driver> .GetItems($"Select * from DriverData u where u.Email = '{user.Email}'");

                if (udb != null && udb.Count() > 0)
                {
                    return((ActionResult) new OkObjectResult("Driver already exist, please login or activate account to continue"));
                }
            }
            catch (Exception ex)
            {
                return((ActionResult) new OkObjectResult(ex));
            }



            if (string.IsNullOrEmpty(user.Password))
            {
                return((ActionResult) new OkObjectResult("A Password is needed for this request"));
            }
            user.Password = user.Password.EncodeString();

            user.LastModified = DateTime.Now;

            user.IsActivated = false;
            try
            {
                dynamic u = await DriverRepository <Driver> .CreateItemAsync(user);

                //Rider rider = u as Rider;

                return((ActionResult) new OkObjectResult("Your account has been created. Admin will contact via the number provided to complete the activation process."));
            }
            catch (Exception ex)
            {
                return((ActionResult) new OkObjectResult("An error has occured"));
            }
        }