public MarketAreaServiceResponse Create(MarketAreaDomain marketArea)
        {
            MarketAreaServiceResponse response = new MarketAreaServiceResponse();

            if (!validateIsNotExist(marketArea.Id))
                response.Messages.Add(new Message("Data is already on database"));
            else
            {
                marketAreaEntity = new MarketArea();
                MergeExtension.Merge(marketAreaEntity, marketArea);
                _marketAreaRepository.Add(marketAreaEntity);
                _marketAreaRepository.SaveChanges();
            }

            return response;
        }
        public MarketAreaServiceResponse GetMarketAreaById(Guid id)
        {
            MarketAreaServiceResponse response = new MarketAreaServiceResponse();
            MarketArea marketArea = _marketAreaRepository.GetById(id);
            if (marketArea == null)
            {
                response.Messages.Add(new Message("Data is not in Database"));
            }
            else
            {

                MarketAreaDomain marketAreaDomain = new MarketAreaDomain();
                MergeExtension.Merge(marketAreaDomain, marketArea);
                response.MarketAreaDomain = marketAreaDomain;
            }
            return response;
        }
        public MarketAreaServiceResponse GetMarketAreaById(Guid id)
        {
            MarketAreaServiceResponse response = new MarketAreaServiceResponse();
            MarketArea marketArea = _marketAreaRepository.GetById(id);

            if (marketArea == null)
            {
                response.Messages.Add(new Message("Data is not in Database"));
            }
            else
            {
                MarketAreaDomain marketAreaDomain = new MarketAreaDomain();
                MergeExtension.Merge(marketAreaDomain, marketArea);
                response.MarketAreaDomain = marketAreaDomain;
            }
            return(response);
        }
        public MarketAreaServiceResponse Update(MarketAreaDomain marketArea)
        {
            MarketAreaServiceResponse response = new MarketAreaServiceResponse();

            if (!validateIsNotExist(marketArea.Id))
            {
                response.Messages.Add(new Message("Data is not in Database"));
            }
            else
            {
                marketAreaEntity = new MarketArea();
                MergeExtension.Merge(marketAreaEntity, marketArea);
                _marketAreaRepository.Update(marketAreaEntity);
                _marketAreaRepository.SaveChanges();
            }
            return(response);
        }
        public MarketAreaServiceResponse GetAllMarketArea()
        {
            MarketAreaServiceResponse response = new MarketAreaServiceResponse();
            Collection<MarketArea> marketAreas = _marketAreaRepository.GetAll();

            if (marketAreas.Count == 0)
            {
                response.Messages.Add(new Message("Tidak Ada Market Area Yang Terdaftar"));
            }
            else
            {
                foreach (var m in marketAreas)
                {
                    MarketAreaDomain marketAreaDomain = new MarketAreaDomain();
                    MergeExtension.Merge(marketAreaDomain, m);
                    response.MarketAreaDomains.Add(marketAreaDomain);
                }
            }
            return response;
        }
        public MarketAreaServiceResponse GetAllMarketArea()
        {
            MarketAreaServiceResponse response    = new MarketAreaServiceResponse();
            Collection <MarketArea>   marketAreas = _marketAreaRepository.GetAll();

            if (marketAreas.Count == 0)
            {
                response.Messages.Add(new Message("Tidak Ada Market Area Yang Terdaftar"));
            }
            else
            {
                foreach (var m in marketAreas)
                {
                    MarketAreaDomain marketAreaDomain = new MarketAreaDomain();
                    MergeExtension.Merge(marketAreaDomain, m);
                    response.MarketAreaDomains.Add(marketAreaDomain);
                }
            }
            return(response);
        }