Esempio n. 1
0
        public async Task <IActionResult> PunchClockAsync(ClockedTimeCreateDto dto)
        {
            var user = await _userManager.FindByEmailAsync(dto.Email);

            bool userIsAuthenticated = false;

            if (user != null)
            {
                userIsAuthenticated = await _userManager.CheckPasswordAsync(user, dto.Password);
            }
            var clockInResult = new PunchClockResult()
            {
                Success = false, Message = "Error: Invalid credentials"
            };

            if (userIsAuthenticated)
            {
                if (dto.Position == 0)
                {
                    clockInResult = await _clockedTimeRepo.SignInUser(user.Id);
                }
                else
                {
                    clockInResult = await _clockedTimeRepo.PunchClock(user.Id, dto.Position);
                }
            }

            return(Ok(clockInResult));
        }
        private async void AuthenticateUser()
        {
            try
            {
                if (!String.IsNullOrWhiteSpace(Email) && !String.IsNullOrWhiteSpace(Password))
                {
                    ClockedTimeCreateDto dto = new ClockedTimeCreateDto
                    {
                        Email    = _email,
                        Password = _password,
                    };

                    var json           = JsonConvert.SerializeObject(dto);
                    var requestContent = new StringContent(json, Encoding.UTF8, "application/json");

                    var response = await _client.PostAsync(punchClockUrl, requestContent);

                    if (response.IsSuccessStatusCode)
                    {
                        var responseContent = await response.Content.ReadAsStringAsync();

                        var result = JsonConvert.DeserializeObject <PunchClockResult>(responseContent);
                        Result = result.Message;
                        if (result.Success)
                        {
                            if (!result.Message.Contains("clocked out"))
                            {
                                IsNotAuthenticated = false;
                                IsAuthenticated    = true;
                            }
                            else
                            {
                                Email    = "";
                                Password = "";
                                Position = null;
                            }
                        }
                    }
                }
                else
                {
                    Result = "You must enter both your email and password to clock in.";
                }
            }
            catch (HttpRequestException netEx)
            {
                Result = "There was an error connecting to the database that was most likely caused by lack of internet connection. Please contact your supervisor.";
            }
            catch (Exception ex)
            {
                Result = "An unhandled error occured. Please contact your supervisor.";
            }
        }
        private async void ClockIn()
        {
            if (Position != null)
            {
                ClockedTimeCreateDto dto = new ClockedTimeCreateDto
                {
                    Email    = _email,
                    Password = _password,
                    Position = _position.Id
                };

                var json           = JsonConvert.SerializeObject(dto);
                var requestContent = new StringContent(json, Encoding.UTF8, "application/json");

                var response = await _client.PostAsync(punchClockUrl, requestContent);

                if (response.IsSuccessStatusCode)
                {
                    var responseContent = await response.Content.ReadAsStringAsync();

                    var result = JsonConvert.DeserializeObject <PunchClockResult>(responseContent);
                    Result             = result.Message;
                    Email              = "";
                    Password           = "";
                    Position           = null;
                    IsAuthenticated    = false;
                    IsNotAuthenticated = true;
                }
                else
                {
                    Result = "Something went wrong. Please try again or ask your supervisor for help.";
                }

                _resultTimer.Start();
            }
            else
            {
                Result = "You must select a position.";
            }
        }