//Ultimate Purpose use in admin controls for creating new purpose & purpose price
        #region Ultimate Purpose
        public void CreateUltimatePurpose(UltimatePurposeDTO dto)
        {
            var newPurpose      = new Purpose();
            var newPurposePrice = new PurposePrice();

            newPurpose.Id                 = Guid.NewGuid();
            newPurpose.IsPromo            = dto.IsPromo;
            newPurpose.ItemId             = dto.ItemId;
            newPurpose.AvailabilityTypeID = dto.AvailabilityTypeID;

            newPurposePrice.Id        = Guid.NewGuid();
            newPurposePrice.PurposeId = newPurpose.Id;
            newPurposePrice.Price     = dto.Price;
            newPurposePrice.CurencyID = dto.CurencyID;
            newPurposePrice.Date      = DateTime.Now;

            _purposeRepository.Create(newPurpose);
            _purposePriceRepository.Create(newPurposePrice);
        }
        public void UpdateUltimatePurpose(UltimatePurposeDTO dto)
        {
            var selectedPurpose      = _purposeRepository.FindById((Guid)dto.PurposeId);
            var selectedPurposePrice = GetPurposePriceByPuposeID((Guid)dto.PurposeId);

            selectedPurpose.Id                 = (Guid)dto.PurposeId;
            selectedPurpose.IsPromo            = dto.IsPromo;
            selectedPurpose.ItemId             = dto.ItemId;
            selectedPurpose.AvailabilityTypeID = dto.AvailabilityTypeID;

            if (dto.Price != selectedPurposePrice.Price || dto.CurencyID != selectedPurposePrice.CurencyID)
            {
                var newPurposePrice = new PurposePrice();
                newPurposePrice.Id        = Guid.NewGuid();
                newPurposePrice.Price     = dto.Price;
                newPurposePrice.PurposeId = dto.PurposeId;
                newPurposePrice.Date      = DateTime.Now;
                newPurposePrice.CurencyID = dto.CurencyID;
                _purposePriceRepository.Create(newPurposePrice);
            }

            _purposeRepository.Update(selectedPurpose);
        }