private async Task <ReorgType> GetFilledReorgType(ReorgType reorgType) { ReorgType rt = null; if (!string.IsNullOrEmpty(reorgType.Name) && !string.IsNullOrEmpty(reorgType.Code)) { rt = await _ctx.ReorgTypes.FirstOrDefaultAsync(dsc => !dsc.IsDeleted && (dsc.Name == reorgType.Name || dsc.NameLanguage1 == reorgType.Name || dsc.NameLanguage2 == reorgType.Name) && dsc.Code == reorgType.Code); } else if (!string.IsNullOrEmpty(reorgType.Name)) { rt = await _ctx.ReorgTypes.FirstOrDefaultAsync(dsc => !dsc.IsDeleted && (dsc.Name == reorgType.Name || dsc.NameLanguage1 == reorgType.Name || dsc.NameLanguage2 == reorgType.Name)); } else if (!string.IsNullOrEmpty(reorgType.Code)) { rt = await _ctx.ReorgTypes.FirstOrDefaultAsync(dsc => !dsc.IsDeleted && dsc.Code == reorgType.Code); } if (rt == null) { throw new Exception($"Reorg type by `{reorgType.Name}` name and {reorgType.Code} code not found"); } return(rt); }
public static ReorgType ParseReorgType(string prop, string value, ReorgType prev) { var result = prev ?? new ReorgType(); switch (prop) { case nameof(UnitStatus.Name): result.Name = value; break; case nameof(UnitStatus.Code): result.Code = value; break; default: throw UnsupportedPropertyOf <ReorgType>(prop); } return(result); }