コード例 #1
0
        /// <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
        }
コード例 #2
0
        public void ThrowExceptionIfExist(TestamentViewModel model)
        {
            ConditionFilter <Testament, long> condition = new ConditionFilter <Testament, long>
            {
                Query = (entity =>
                         entity.Code == model.Code &&
                         entity.Id != model.Id)
            };
            var existEntity = this._testamentRepository.Get(condition).FirstOrDefault();

            if (existEntity != null)
            {
                throw new ItemAlreadyExistException((int)ErrorCodeEnum.CodeAlreadyExist);
            }
        }
コード例 #3
0
        /// <summary>
        /// Update an entity.
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public TestamentViewModel Update(TestamentViewModel model)
        {
            //this.ThrowExceptionIfExist(model);

            var entity = this._testamentRepository.Get(model.Id);             //model.ToEntity();

            entity = this._testamentRepository.Update(entity);

            Testament entityAr = entity.ChildTranslatedCustodies.FirstOrDefault(x => x.Language == Language.Arabic);

            entityAr.Description = model.DescriptionAr;
            this._testamentRepository.Update(entityAr);
            Testament entityEn = entity.ChildTranslatedCustodies.FirstOrDefault(x => x.Language == Language.English);

            entityEn.Description = model.DescriptionEn;
            this._testamentRepository.Update(entityEn);

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

            model = entity.ToModel();
            return(model);
        }
コード例 #4
0
        /// <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);
        }