public WorkDay GetWorkDayByDate(WorkDaysQueryParams queryParams) { string date = queryParams.Date.Trim(); if (date.Length > 7) { string[] dateSplits; dateSplits = date.Split("-"); if (dateSplits.Length == 3) { try { DateTime dateTime = new DateTime(Convert.ToInt32(dateSplits[0]), Convert.ToInt32(dateSplits[1]), Convert.ToInt32(dateSplits[2])); //Has to be converted to UTC because Mongo stores dates in UTC dateTime = dateTime.ToUniversalTime(); Console.WriteLine(dateTime); return(_worksDaysRepository.GetWorkDayByDate(dateTime)); //TODO: conversion and bad date errors } catch (Exception) { throw; } } else { //TODO: Custom exceptions //Bad spliting custom exception throw new System.Exception("Wrong date format should be yyyy-MM-dd"); } } else { //Bad query param custom exception throw new System.Exception(); } }
public IActionResult GetWorkDays([FromQuery] WorkDaysQueryParams queryParams) { try { if (queryParams != null && queryParams.Date != null) { try { //TODO: make date in WorkDaysQueryParams type datetime validation easier return(Ok(_workDaysService.GetWorkDayByDate(queryParams))); } catch (Exception e) { return(BadRequest(e.Message)); } } } catch (Exception ex) { return(StatusCode(StatusCodes.Status500InternalServerError, ex.Message)); } return(Ok(_workDaysService.GetWorkDays())); }