Esempio n. 1
0
        /// <summary>
        /// Delete an entity.
        /// </summary>
        /// <param name="model"></param>
        public void Delete(CurrencyViewModel model)
        {
            var entity = model.ToEntity();

            this._CurrencysRepository.Delete(entity);

            #region Commit Changes
            this._unitOfWork.Commit();
            #endregion
        }
Esempio n. 2
0
        /// <summary>
        /// Add an entity.
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public CurrencyViewModel Add(CurrencyViewModel model)
        {
            try
            {
                var entity = model.ToEntity();
                entity = this._CurrencysRepository.Add(entity);
                var entityAr = new Currency
                {
                    //Id = entity.Id,
                    Description = model.DescriptionAr,
                    Name        = model.NameAr,
                    Language    = Language.Arabic
                };
                this.ThrowExceptionIfExist(entityAr);
                entity.ChildTranslatedCurrencys.Add(entityAr);
                this._CurrencysRepository.Add(entityAr);

                var entityEn = new Currency
                {
                    //Id = entity.Id,
                    Description = model.DescriptionEn,
                    Name        = model.NameEn,
                    Language    = Language.English
                };
                this.ThrowExceptionIfExist(entityEn);
                entity.ChildTranslatedCurrencys.Add(entityEn);
                this._CurrencysRepository.Add(entityEn);

                CurrencyRate currencyRate = new CurrencyRate()
                {
                    Date               = entity.Date,
                    Currency           = entity,
                    Price              = model.Price,
                    ExchangeCurrencyId = model.ExchangeCurrencyId
                };

                this._currencyRatesRepository.Add(currencyRate);

                #region Commit Changes
                this._unitOfWork.Commit();
                #endregion

                model = entity.ToModel();
                return(model);
            }
            catch (Exception ex)
            {
                throw;
            }
        }
Esempio n. 3
0
        /// <summary>
        /// Update an entity.
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public CurrencyViewModel Update(CurrencyViewModel model)
        {
            this.ThrowExceptionIfExist(model);

            var entity = model.ToEntity();

            entity = this._CurrencysRepository.Update(entity);

            Currency entityAr = entity.ChildTranslatedCurrencys.Where(x => x.Language == Language.Arabic).FirstOrDefault();

            entityAr.Description = model.DescriptionAr;
            entityAr.Name        = model.NameAr;
            entityAr.Date        = entity.Date;
            this._CurrencysRepository.Update(entityAr);
            Currency entityEn = entity.ChildTranslatedCurrencys.Where(x => x.Language == Language.English).FirstOrDefault();

            entityEn.Description = model.DescriptionEn;
            entityEn.Name        = model.NameEn;
            entityEn.Date        = entity.Date;
            this._CurrencysRepository.Update(entityEn);

            var latest = this._currencyRatesRepository.Get(null)
                         .OrderByDescending(c => c.Id)
                         .Where(x => x.CurrencyId == entity.Id)
                         .FirstOrDefault();

            if (!(latest != null && latest.Price == model.Price))
            {
                CurrencyRate currencyRate = new CurrencyRate()
                {
                    Date               = entity.Date,
                    Currency           = entity,
                    Price              = model.Price,
                    ExchangeCurrencyId = model.ExchangeCurrencyId
                };

                this._currencyRatesRepository.Add(currencyRate);
            }

            #region Commit Changes
            this._unitOfWork.Commit();
            #endregion

            model = entity.ToModel();
            return(model);
        }