/// <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 }
/// <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; } }
/// <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); }