Exemplo n.º 1
0
        public async Task <IActionResult> SigninAsync([FromBody] SigninBindingModel collection)
        {
            Log.Debug($"A User is trying to signing in with this data: {JsonConvert.SerializeObject(collection)}");

            if (string.IsNullOrEmpty(collection?.Username) || string.IsNullOrEmpty(collection?.Password))
            {
                return(BadRequest(_localizer[DataTransferer.DefectiveUsernameOrPassword().Message]));
            }

            var deviceHeader = GetDeviceInfosFromHeader();

            if (deviceHeader == null)
            {
                return(BadRequest(_localizer[DataTransferer.UnofficialRequest().Message]));
            }

            collection.DeviceId   = deviceHeader.DeviceId;
            collection.DeviceName = deviceHeader.DeviceName;
            collection.DeviceType = deviceHeader.DeviceType;

            try {
                var result = await _accountService.SigninAsync(collection).ConfigureAwait(true);

                switch (result.Code)
                {
                case 200:
                    return(Ok(result.Data));

                case 400:
                    return(BadRequest(result.Message));

                case 500:
                default:
                    return(Problem(result.Message));
                }
            }
            catch (Exception ex) {
                Log.Error(ex, ex.Source);
                return(Problem(_localizer[DataTransferer.SomethingWentWrong().Message]));
            }
        }