public async Task <IEnumerable <OrphanageDataModel.Persons.Father> > GetFathers(int Uid, int pageSize, int pageNum) { IList <OrphanageDataModel.Persons.Father> fathersList = new List <OrphanageDataModel.Persons.Father>(); using (var _orphanageDBC = new OrphanageDbCNoBinary()) { int totalSkiped = pageSize * pageNum; int FathersCount = await _orphanageDBC.Fathers.AsNoTracking().CountAsync(); if (FathersCount < totalSkiped) { totalSkiped = FathersCount - pageSize; } if (totalSkiped < 0) { totalSkiped = 0; } var fathers = await _orphanageDBC.Fathers.AsNoTracking() .OrderBy(o => o.Id).Skip(() => totalSkiped).Take(() => pageSize) .Include(f => f.Families) .Include(f => f.Name) .Where(f => f.UserId == Uid) .ToListAsync(); foreach (var father in fathers) { OrphanageDataModel.Persons.Father fatherToFill = father; FatherDbService.setFatherEntities(ref fatherToFill, _orphanageDBC); _selfLoopBlocking.BlockFatherSelfLoop(ref fatherToFill); _uriGenerator.SetFatherUris(ref fatherToFill); fathersList.Add(fatherToFill); } } return(fathersList); }
public async Task <string> GetWifeName(OrphanageDataModel.Persons.Father father) { _logger.Information($"Trying to get wife name for the father {father.Name.FullName()}"); string WifeName = ""; foreach (var fam in father.Families) { if (fam.Mother == null || fam.Mother.Name == null) { _logger.Information($"Trying to get mother object for the father {father.Name.FullName()}"); fam.Mother = await _motherDbService.GetMother(fam.MotherId); } if (father.Families.Count > 1) { WifeName += fam.Mother.Name.FullName() + ", "; } else { WifeName += fam.Mother.Name.FullName() + ", "; } } if (WifeName.EndsWith(", ")) { WifeName = WifeName.Substring(0, WifeName.Length - 2); } _logger.Information($"wife name for the father {father.Name.FullName()}, is {WifeName}"); return(WifeName); }
public async Task <IEnumerable <OrphanageDataModel.Persons.Father> > GetFathers(IList <int> fathersIds) { _logger.Information($"trying to get fathers with the given Id list"); if (fathersIds == null || fathersIds.Count() == 0) { _logger.Information($"the given Id list is null or empty, null will be returned"); return(null); } IList <OrphanageDataModel.Persons.Father> fathersList = new List <OrphanageDataModel.Persons.Father>(); using (var _orphanageDBC = new OrphanageDbCNoBinary()) { var fathers = await _orphanageDBC.Fathers.AsNoTracking() .Where(m => fathersIds.Contains(m.Id)) .Include(f => f.Families) .Include(f => f.Name) .ToListAsync(); foreach (var father in fathers) { OrphanageDataModel.Persons.Father fatherToFill = father; setFatherEntities(ref fatherToFill, _orphanageDBC); _selfLoopBlocking.BlockFatherSelfLoop(ref fatherToFill); _uriGenerator.SetFatherUris(ref fatherToFill); father.OrphansCount = await GetOrphansCount(father.Id, _orphanageDBC); father.WifeName = await(GetWifeName(father)); fathersList.Add(fatherToFill); } } _logger.Information($"{fathersList.Count} records of fathers will be returned"); return(fathersList); }
public async Task <OrphanageDataModel.Persons.Father> getFather(int Cid) { var returnedFather = await _apiClient.Fathers_GetAsync(Cid); var deathCertificatePhotoTask = _apiClient.GetImageData(returnedFather.DeathCertificateImageURI); var personalPhotoTask = _apiClient.GetImageData(returnedFather.PersonalPhotoURI); returnedFather.DeathCertificatePhotoData = await deathCertificatePhotoTask; returnedFather.PhotoData = await personalPhotoTask; _CurrentFather = returnedFather; return(returnedFather); }
public async Task <int> SaveFather(OrphanageDataModel.Persons.Father father) { _logger.Information($"Trying to save father"); if (father == null) { _logger.Error($"the parameter object guarantor is null, NullReferenceException will be thrown"); throw new NullReferenceException(); } if (father.NameId <= 0) { _logger.Error($"the NameID of the parameter object father equals {father.NameId}, NullReferenceException will be thrown"); throw new NullReferenceException(); } using (OrphanageDbCNoBinary orphanageDc = new OrphanageDbCNoBinary()) { int ret = 0; orphanageDc.Configuration.AutoDetectChangesEnabled = true; orphanageDc.Configuration.LazyLoadingEnabled = true; orphanageDc.Configuration.ProxyCreationEnabled = true; var fatherToReplace = await orphanageDc.Fathers.Where(f => f.Id == father.Id).FirstAsync(); if (fatherToReplace == null) { _logger.Error($"the original father object with id {father.Id} object is not founded, ObjectNotFoundException will be thrown"); throw new Exceptions.ObjectNotFoundException(); } _logger.Information($"processing the name object of the father with id({father.Id})"); ret += await _regularDataService.SaveName(father.Name, orphanageDc); fatherToReplace.Birthday = father.Birthday; fatherToReplace.ColorMark = father.ColorMark; fatherToReplace.DateOfDeath = father.DateOfDeath; fatherToReplace.DeathReason = father.DeathReason; fatherToReplace.IdentityCardNumber = father.IdentityCardNumber; fatherToReplace.Jop = father.Jop; fatherToReplace.NameId = father.NameId; fatherToReplace.Note = father.Note; fatherToReplace.Story = father.Story; ret += await orphanageDc.SaveChangesAsync(); if (ret > 0) { _logger.Information($"father with id({father.Id}) has been successfully saved to the database, {ret} changes have been made"); return(ret); } else { _logger.Information($"nothing has changed, 0 will be returned"); return(0); } } }
public static void setFatherEntities(ref OrphanageDataModel.Persons.Father father, DbContext dbContext) { OrphanageDbCNoBinary dbCNoBinary = (OrphanageDbCNoBinary)dbContext; foreach (var fam in father.Families) { var moth = dbCNoBinary.Mothers. Include(m => m.Name). Include(m => m.Address). FirstOrDefault(m => m.Id == fam.MotherId); fam.Mother = moth; } }
private async void LoadFather(int fatherId) { _Father = await _fatherEditViewModel.getFather(fatherId); if (_Father != null) { fatherBindingSource.DataSource = _Father; _fatherEntityValidator.controlCollection = Controls; _fatherEntityValidator.DataEntity = _Father; nameForm1.NameDataSource = _Father.Name; SetData(); txtName.Text = nameForm1.FullName; } TranslateControls(); }
public async Task <bool> Save(OrphanageDataModel.Persons.Father father) { try { father.DeathCertificatePhotoData = null; father.PhotoData = null; await _apiClient.Fathers_PutAsync(father); return(true); } catch (ApiClientException apiEx) { return(_exceptionHandler.HandleApiSaveException(apiEx)); } }
public async Task <HttpResponseMessage> Put(OrphanageDataModel.Persons.Father father) { var ret = 0; ret = await _FatherDBService.SaveFather(father); if (ret > 0) { return(_httpMessageConfiguerer.OK()); } else { return(_httpMessageConfiguerer.NothingChanged()); } }
public async Task <IEnumerable <OrphanageDataModel.Persons.Father> > GetFathers(int pageSize, int pageNum) { _logger.Information($"Trying to get Fathers with pageSize {pageSize} and pageNumber {pageNum}"); IList <OrphanageDataModel.Persons.Father> fathersList = new List <OrphanageDataModel.Persons.Father>(); using (var _orphanageDBC = new OrphanageDbCNoBinary()) { int totalSkiped = pageSize * pageNum; int FathersCount = await _orphanageDBC.Fathers.AsNoTracking().CountAsync(); if (FathersCount < totalSkiped) { _logger.Warning($"Total skipped Fathers({totalSkiped}) are more than the count of all Fathers ({FathersCount})"); totalSkiped = FathersCount - pageSize; } if (totalSkiped < 0) { _logger.Warning($"Total skipped Fathers({totalSkiped}) are less than zero"); totalSkiped = 0; } var fathers = await _orphanageDBC.Fathers.AsNoTracking() .OrderBy(o => o.Id).Skip(() => totalSkiped).Take(() => pageSize) .Include(f => f.Families) .Include(f => f.Name) .ToListAsync(); foreach (var father in fathers) { OrphanageDataModel.Persons.Father fatherToFill = father; setFatherEntities(ref fatherToFill, _orphanageDBC); _selfLoopBlocking.BlockFatherSelfLoop(ref fatherToFill); _uriGenerator.SetFatherUris(ref fatherToFill); father.OrphansCount = await GetOrphansCount(father.Id, _orphanageDBC); father.WifeName = await(GetWifeName(father)); fathersList.Add(fatherToFill); } } _logger.Information($"{fathersList.Count} records of fathers will be returned"); return(fathersList); }
public async Task <IEnumerable <OrphanageDataModel.Persons.Father> > GetFathers(int Uid) { IList <OrphanageDataModel.Persons.Father> fathersList = new List <OrphanageDataModel.Persons.Father>(); using (var _orphanageDBC = new OrphanageDbCNoBinary()) { var fathers = await _orphanageDBC.Fathers.AsNoTracking() .Include(f => f.Families) .Include(f => f.Name) .Where(f => f.UserId == Uid) .ToListAsync(); foreach (var father in fathers) { OrphanageDataModel.Persons.Father fatherToFill = father; FatherDbService.setFatherEntities(ref fatherToFill, _orphanageDBC); _selfLoopBlocking.BlockFatherSelfLoop(ref fatherToFill); _uriGenerator.SetFatherUris(ref fatherToFill); fathersList.Add(fatherToFill); } } return(fathersList); }
public void BlockFatherSelfLoop(ref OrphanageDataModel.Persons.Father father) { if (father == null) { return; } dynamic fathN = father.Name; BlockForignKeys(ref fathN); father.Name = fathN; if (father.Families != null) { var familesList = new List <OrphanageDataModel.RegularData.Family>(); foreach (var fam in father.Families) { fam.Father = null; var famToblock = fam; BlockFamilySelfLoop(ref famToblock); familesList.Add(famToblock); } father.Families = familesList; } }
public void SetFatherUris(ref OrphanageDataModel.Persons.Father fatherDto) { if (fatherDto == null) { return; } fatherDto.PersonalPhotoURI = "api/father/media/photo/" + fatherDto.Id; fatherDto.DeathCertificateImageURI = "api/father/media/death/" + fatherDto.Id; if (fatherDto.Families != null) { var tempList = new List <OrphanageDataModel.RegularData.Family>(); foreach (var fam in fatherDto.Families) { var familyDC = fam; if (familyDC.FamilyCardImagePage1URI == null || familyDC.FamilyCardImagePage1URI.Length == 0 || familyDC.FamilyCardImagePage2URI == null || familyDC.FamilyCardImagePage2URI.Length == 0) { SetFamilyUris(ref familyDC); } tempList.Add(familyDC); } fatherDto.Families = tempList; } }
///<inheritdoc/> public async Task <int> AddFather(OrphanageDataModel.Persons.Father father, OrphanageDbCNoBinary orphanageDBC) { _logger.Information($"Trying to add new father"); if (father == null) { _logger.Error($"the parameter object father is null, NullReferenceException will be thrown"); throw new NullReferenceException(); } if (father.Name == null) { _logger.Error($"the Name object of the parameter object father is null, NullReferenceException will be thrown"); throw new NullReferenceException(); } if (!Properties.Settings.Default.ForceAdd) { _logger.Information($"ForceAdd option is not activated"); if (Properties.Settings.Default.CheckName) { _logger.Information($"CheckName option is activated, trying to get the equal names from database"); var ret = GetFathersByName(father.Name, orphanageDBC).FirstOrDefault(); if (ret != null) { _logger.Error($"father with id({father.Id}) has the same name, DuplicatedObjectException will be thrown"); throw new DuplicatedObjectException(father.GetType(), ret.GetType(), ret.Id); } else { _logger.Information($"didn't found any similar names to ({father.Name.FullName()}) in the database"); } } } var fatherName = father.Name; var taskFatherName = _regularDataService.AddName(fatherName, orphanageDBC); father.NameId = await taskFatherName; if (father.NameId == -1) { _logger.Warning($"Name object has not been added, nothing will be added, -1 will be returned"); return(-1); } father.Name = null; if (father.ActingUser != null) { father.ActingUser = null; } if (father.Families != null) { father.Families = null; } orphanageDBC.Fathers.Add(father); if (await orphanageDBC.SaveChangesAsync() == 1) { _logger.Information($"new father object with id {father.Id} has been added"); return(father.Id); } else { _logger.Warning($"something went wrong, nothing was added, -1 will be returned"); return(-1); } }