示例#1
0
        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();
            }
        }
示例#2
0
        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()));
        }