private static async Task WriteExceptionAsync(HttpContext context, Exception exception, HttpStatusCode code)
        {
            var response = context.Response;

            response.ContentType = "application/json";
            response.StatusCode  = (int)code;
            await response.WriteAsync(JsonConvert.SerializeObject(ErrorMessageCreator.GenerateErrorMessage(ErrorType.Unknown, exception.Message))).ConfigureAwait(false);
        }
        public IActionResult AcceptMine(string userId, int actionId)
        {
            var result = _rescuersService.AcceptMyInvitation(userId, actionId);

            if (result != null)
            {
                return(Ok(Mapper.Map <Sudionici, SudioniciDto> (result)));
            }
            return(BadRequest(ErrorMessageCreator.GenerateErrorMessage(ErrorType.NotExist)));
        }
        public IActionResult GetById(int id)
        {
            var action = _rescuersService.GetActionById(id);

            if (action == null)
            {
                return(BadRequest(ErrorMessageCreator.GenerateErrorMessage(ErrorType.Unknown)));
            }
            return(Ok(Mapper.Map <AkcijaSpasavanje, RescueActionDto>(action)));
        }
예제 #4
0
 public IActionResult AddUnavailabilityToUser([FromBody] UnavailableDto dto)
 {
     if (ModelState.IsValid)
     {
         _userRepository.AddUnavailableTimeForUser(Mapper.Map <UnavailableDto, Nedostupan>(dto));
         return(Ok(Mapper.Map <AspNetUsers, UserDto>(_userRepository.GetUserById(dto.KorisnikId))));
     }
     return(BadRequest(ErrorMessageCreator.GenerateErrorMessage(ErrorType.ValidationError,
                                                                "Vrijeme od,Vrijeme do i korisnik su obavezna polja")));
 }
예제 #5
0
        public async Task DolarDia(CommandContext ctx, string date)
        {
            bool dateIsValid = DateValidator.CheckIfDataIsValid(date);

            if (dateIsValid)
            {
                await SendPokedollarMessageForGivenDate(ctx, date);
            }
            else
            {
                await ErrorMessageCreator.CreateErrorMessageBecauseOfInvalidDate(ctx);
            }
        }
예제 #6
0
        public IActionResult Register([FromBody] RegisterDto registerDto)
        {
            if (registerDto == null)
            {
                return(BadRequest(ErrorMessageCreator.GenerateErrorMessage(ErrorType.FormatError)));
            }
            var result = _membershipService.Register(registerDto);

            if (result.Status != true)
            {
                return(BadRequest(ErrorMessageCreator.GenerateErrorMessage(ErrorType.ValidationError, result.Message)));
            }
            return(Ok(result));
        }
예제 #7
0
        public IActionResult Login([FromBody] LoginDto loginDto)
        {
            if (loginDto?.Username == null || loginDto.Password == null)
            {
                return(BadRequest(ErrorMessageCreator.GenerateErrorMessage(ErrorType.FormatError)));
            }
            var result = _membershipService.Login(loginDto.Username, loginDto.Password);

            if (result.Authenticated != true)
            {
                return(BadRequest(
                           ErrorMessageCreator.GenerateErrorMessage(ErrorType.ValidationError, "Wrong username or password")));
            }
            return(Ok(result));
        }
예제 #8
0
        public async Task <IActionResult> SendSms(string userId, int actionId)
        {
            var user   = _userRepository.GetUserById(userId);
            var action = _rescuersService.GetActionById(actionId);

            if (user.Sms != null)
            {
                var content = new SmsDto
                {
                    message = "HGSS: Please respond if you are available for action: " + action.Naziv + " in " + action.NazivLokacije,
                    phone   = user.Sms
                };
                var httpContent = new StringContent(JsonConvert.SerializeObject(content), Encoding.UTF8, "application/json");

                var result = await new HttpClient().PostAsync("https://textbelt.com/text", httpContent);
                return(Ok(result));
            }

            return(BadRequest(ErrorMessageCreator.GenerateErrorMessage(ErrorType.ValidationError, "User has no sms")));
        }
        public IActionResult Save([FromBody] RescueActionDto dto)
        {
            var action = Mapper.Map <RescueActionDto, AkcijaSpasavanje>(dto);

            if (!ModelState.IsValid)
            {
                return(BadRequest(ErrorMessageCreator.GenerateErrorMessage(ErrorType.ValidationError,
                                                                           "Naziv, opis, potraga are required fields")));
            }
            AkcijaSpasavanje actionNew = null;

            if (dto.Id != 0)
            {
                actionNew = _rescuersService.EditAction(dto, dto.Id);
            }
            else
            {
                actionNew = _rescuersService.AddAction(action, User.Identity.Name);
            }
            return(Ok(Mapper.Map <AkcijaSpasavanje, RescueActionDto>(actionNew)));
        }
예제 #10
0
 private static DiscordEmbedBuilder BuildNewDiscordEmbed(ApodResponse result)
 {
     if (result.StatusCode != ApodStatusCode.OK)
     {
         return(ErrorMessageCreator.CreateErrorMessageDiscordEmbed());
     }
     else if (result.Content.MediaType == MediaType.Video)
     {
         return(new DiscordEmbedBuilder
         {
             Title = result.Content.Title,
             Url = result.Content.ContentUrl,
         });
     }
     else
     {
         return(new DiscordEmbedBuilder
         {
             Title = result.Content.Title,
             ImageUrl = result.Content.ContentUrlHD,
         });
     }
 }
예제 #11
0
        public async Task <DiscordEmbedBuilder> GetExchangeRateForThisDate(string date)
        {
            var exchangeRate = string.Empty;
            var task         = Task.Run(async() =>
            {
                exchangeRate = await ExchangeRateGetter.GetExchangeRateForGivenDate(date, _historicExchangeRateToken);
            });

            bool taskCompletedSuccessfully = task.Wait(TimeSpan.FromSeconds(5));

            return(taskCompletedSuccessfully ? CreateMessageWithCorrectInformation(exchangeRate) : ErrorMessageCreator.CreateErrorMessageDiscordEmbed());
        }
예제 #12
0
        public DiscordEmbedBuilder GetTodaysExchangeRate()
        {
            var exchangeRate = string.Empty;
            var task         = Task.Run(() =>
            {
                exchangeRate = ExchangeRateGetter.GetExchangeRateForToday(_todaysExchangeRateToken);
            });

            bool taskCompletedSuccessfully = task.Wait(TimeSpan.FromSeconds(3));

            return(taskCompletedSuccessfully ? CreateMessageWithCorrectInformation(exchangeRate) : ErrorMessageCreator.CreateErrorMessageDiscordEmbed());
        }