public GroupDetailsResponseViewModel GetListingsByGroupId(PeriodDetailsRequestViewModel periodDetailsRequestViewModel)
        {
            var listings = _service.GetListingsByGroupId(periodDetailsRequestViewModel.PeriodId);
            var response = new GroupDetailsResponseViewModel();
             listings.Lists.ToList().ForEach(
                                                x => response.Periods.Add(new PeriodViewModel() {
                                                                                                    PeriodId = x.PeriodId,
                                                                                                    Element = new ElementViewModel {
                                                                                                                                        ElementId=x.Element.ElementId,
                                                                                                                                        AtomicWeigh=x.Element.AtomicWeigh,
                                                                                                                                        Classification=x.Element.Classification,
                                                                                                                                        Color =  x.Element.Color,
                                                                                                                                        Density =  x.Element.Density,
                                                                                                                                        ElectronConfiguration =  x.Element.ElectronConfiguration,
                                                                                                                                        Electrons =  x.Element.Electrons,
                                                                                                                                        ElectronShells = x.Element.ElectronShells,
                                                                                                                                        Name = x.Element.Name,
                                                                                                                                        Neutrons = x.Element.Neutrons,
                                                                                                                                        Protons = x.Element.Protons,
                                                                                                                                        State = x.Element.State
                                                                                                                                    }
                                                                                                }
                                                                                            ));

            response.GroupId = listings.GroupId;
            return response;
        }
        public PeriodDetailsResponseViewModel GetPeriodicDetailsByPeriodId(PeriodDetailsRequestViewModel periodDetailsRequestViewModel)
        {
            var listings = _service.GetListingsByPeriodId(periodDetailsRequestViewModel.PeriodId);
            var response = new PeriodDetailsResponseViewModel();

            listings.Elements.ForEach(x => response.Groups.Add(
                                                                new GroupViewModel()
                                                                                        {
                                                                                            GroupId = x.GroupId,
                                                                                            Element = new ElementViewModel() {
                                                                                                                                ElementId = x.ElementId,
                                                                                                                                Name = x.Name,
                                                                                                                                AtomicWeigh = x.AtomicWeigh,
                                                                                                                                Classification = x.Classification,
                                                                                                                                Color = x.Color,
                                                                                                                                Density = x.Density,
                                                                                                                                ElectronConfiguration = x.ElectronConfiguration,
                                                                                                                                Electrons = x.Electrons,
                                                                                                                                ElectronShells = x.ElectronShells,
                                                                                                                                Neutrons = x.Neutrons,
                                                                                                                                Protons = x.Protons,
                                                                                                                                State = x.State,
                                                                                                                                MeltingPoint = x.MeltingPoint
                                                                                                                            }
                                                                                          }
                                                                ));
            return response;
        }
        public HttpResponseMessage Get(int id)
        {
            var periodDetialsRequestViewModel = new PeriodDetailsRequestViewModel() { PeriodId = id };
            var serviceResponse = _periodDetailsPresenter.GetPeriodicDetailsByPeriodId(periodDetialsRequestViewModel);
            HttpResponseMessage httpResponse;

            switch (serviceResponse.StatusCode)
            {
                case PeriodicTableStatusCodes.Success:
                    httpResponse = Request.CreateResponse(HttpStatusCode.OK, serviceResponse);
                    break;
                case PeriodicTableStatusCodes.Error:
                    var internalServiceError = PeriodicTableServerExceptionResponse.GetInternalServiceError();
                    httpResponse = Request.CreateResponse(HttpStatusCode.InternalServerError, internalServiceError);
                    break;
                default:
                    var error = new HttpError(GetCorrectErrorMessage(serviceResponse.StatusCode))
                                    {
                                        {"ErrorCode", serviceResponse.StatusCode}
                                    };
                    httpResponse = Request.CreateErrorResponse(HttpStatusCode.BadRequest, error);
                    break;
            }
            return httpResponse;
        }