/// <summary> /// Delete an entity. /// </summary> /// <param name="model"></param> public void Delete(TestamentViewModel model) { var entity = model.ToEntity(); this._testamentRepository.Delete(entity); #region Commit Changes this._unitOfWork.Commit(); #endregion }
/// <summary> /// Add an entity. /// </summary> /// <param name="model"></param> /// <returns></returns> public TestamentViewModel Add(TestamentViewModel model) { if (model.Journal == null) { this.ThrowExceptionIfExist(model); var entity = model.ToEntity(); entity = this._testamentRepository.Add(entity); foreach (var advance in model.Advances) { var advanceEntity = advance.ToEntity(); advanceEntity.Testament = entity; advanceEntity.CurrentAmount = advanceEntity.Amount; advanceEntity.IsClosed = false; entity.Advances.Add(advanceEntity); advanceEntity = this._advancesRepository.Add(advanceEntity); var advanceEntityAr = new Advance { Description = advance.DescriptionAr, Language = Language.Arabic, ParentKeyAdvance = advanceEntity }; advanceEntity.ChildTranslatedAdvances.Add(advanceEntityAr); this._advancesRepository.Add(advanceEntityAr); var advanceEntityEn = new Advance { Description = advance.DescriptionEn, Language = Language.English, ParentKeyAdvance = advanceEntity }; advanceEntity.ChildTranslatedAdvances.Add(advanceEntityEn); this._advancesRepository.Add(advanceEntityEn); } var entityAr = new Testament { //Id = entity.Id, Description = model.DescriptionAr, Language = Language.Arabic }; entity.ChildTranslatedCustodies.Add(entityAr); this._testamentRepository.Add(entityAr); var entityEn = new Testament { //Id = entity.Id, Description = model.DescriptionEn, Language = Language.English }; entity.ChildTranslatedCustodies.Add(entityEn); this._testamentRepository.Add(entityEn); #region Commit Changes this._unitOfWork.Commit(); #endregion model.Id = entity.Id; //this._journalPostingsService.TryPostAutomatic(entity.Id, MovementType.PaymentMovement); model.Journal = this._journalPostingsService.Post(model.Id, MovementType.Testament); model.Journal.Date = model.Date.Value; foreach (var Journal in model.Journal.journalDetails) { Journal.AccountFullCode = this._accountChartsRepository.Get().FirstOrDefault(x => x.Id == Journal.AccountId).FullCode; } } else if (model.Journal.PostingStatus == PostingStatus.Approved) { this._journalsService.AddJournal(model.Journal, PostingStatus.NeedAprove); var entity = this._testamentRepository.Get(model.Id); if (entity != null) { entity.IsPosted = false; entity.PostingDate = DateTime.Now; entity.PostedByUserId = this._currentUserService.CurrentUserId; entity = this._testamentRepository.Update(entity); } this._unitOfWork.Commit(); } else if (model.Journal.PostingStatus == PostingStatus.Rejected) { } return(model); }