/// <summary> /// Delete an entity. /// </summary> /// <param name="model"></param> public void Delete(DelegateManViewModel model) { var entity = model.ToEntity(); this._DelegateMansRepository.Delete(entity); #region Commit Changes this._unitOfWork.Commit(); #endregion }
/// <summary> /// Update an entity. /// </summary> /// <param name="model"></param> /// <returns></returns> public DelegateManViewModel Update(DelegateManViewModel model) { this.ThrowExceptionIfExist(model); var entity = model.ToEntity(); entity = this._DelegateMansRepository.Update(entity); ConditionFilter <DelegateMan, long> conditionFilter = new ConditionFilter <DelegateMan, long>() { Query = (x => x.ParentKeyDelegateManId == entity.Id) }; var childs = this._DelegateMansRepository.Get(conditionFilter); if (childs.Count() > 0) { var ar = childs.FirstOrDefault(x => x.Language == Language.Arabic); ar.Name = model.NameAr; ar.Description = model.DescriptionAr; this._DelegateMansRepository.Update(ar); var en = childs.FirstOrDefault(x => x.Language == Language.English); en.Name = model.NameEn; en.Description = model.DescriptionEn; this._DelegateMansRepository.Update(en); } Address address = this._AddresssRepository.Get().FirstOrDefault(x => x.ObjectId == entity.Id && x.ObjectType == ObjectType.Delegate); address.Description = model.Address; this._AddresssRepository.Update(address); Mobile mobile = this._MobilesRepository.Get().FirstOrDefault(x => x.ObjectId == entity.Id && x.ObjectType == ObjectType.Delegate); mobile.Number = model.Phone; Mail mail = this._MailsRepository.Get().FirstOrDefault(x => x.ObjectId == entity.Id && x.ObjectType == ObjectType.Delegate); mail.Email = model.Email; this._MailsRepository.Update(mail); #region Commit Changes this._unitOfWork.Commit(); #endregion model = entity.ToModel(); return(model); }
/// <summary> /// Throw an exception if name is exist. /// </summary> /// <param name="model">DelegateMan view model</param> public void ThrowExceptionIfExist(DelegateManViewModel model) { ConditionFilter <DelegateMan, long> condition = new ConditionFilter <DelegateMan, long> { Query = (entity => entity.Code == model.Code && entity.Id != model.Id) }; var existEntity = this._DelegateMansRepository.Get(condition).FirstOrDefault(); if (existEntity != null) { throw new ItemAlreadyExistException((int)ErrorCodeEnum.CodeAlreadyExist); } }
/// <summary> /// Add an entity. /// </summary> /// <param name="model"></param> /// <returns></returns> public DelegateManViewModel Add(DelegateManViewModel model) { this.ThrowExceptionIfExist(model); var entity = model.ToEntity(); entity = this._DelegateMansRepository.Add(entity); var entityAr = new DelegateMan { Id = entity.Id, Description = model.DescriptionAr, Name = model.NameAr, Language = Language.Arabic }; entity.ChildTranslatedDelegateMans.Add(entityAr); this._DelegateMansRepository.Add(entityAr); var entityEn = new DelegateMan { Id = entity.Id, Description = model.DescriptionEn, Name = model.NameEn, Language = Language.English }; entity.ChildTranslatedDelegateMans.Add(entityEn); this._DelegateMansRepository.Add(entityEn); #region Commit Changes this._unitOfWork.Commit(); #endregion if (string.IsNullOrEmpty(model.Email) == false) { Mail mail = new Mail { ObjectId = entity.Id, ObjectType = ObjectType.Delegate, Email = model.Email, IsMain = true, IsVerified = true, IsActive = true }; ThrowExceptionIfExist(mail); this._MailsRepository.Add(mail); } if (string.IsNullOrEmpty(model.Address) == false) { Address address = new Address { ObjectId = entity.Id, ObjectType = ObjectType.Delegate, Description = model.Address, IsMain = true, IsActive = true }; this._AddresssRepository.Add(address); } if (string.IsNullOrEmpty(model.Phone) == false) { Mobile mobile = new Mobile { ObjectId = entity.Id, ObjectType = ObjectType.Delegate, Number = model.Phone, IsActive = true, IsMain = true }; ThrowExceptionIfExist(mobile); this._MobilesRepository.Add(mobile); } #region Commit Changes this._unitOfWork.Commit(); #endregion model = entity.ToModel(); return(model); }