public LoginResponse GetUserLogins(UserRequest request) { List <LoginDTO> result = null; try { NullSafeCheck(request); NullSafeCheck(request.Filter, "Filter"); var filter = request.Filter; using (var context = new CharityEntities()) { var query = context.Logins.AsNoTracking().AsQueryable(); if (filter.ID > 0) { query = query.Where(p => p.CreateUser == filter.ID); } else { throw new Exception("UserID is not valid"); } result = query.Select(LoginDTOMapper).ToList(); } return(new LoginResponse { Success = true, ResultList = result }); } catch (Exception ex) { var response = ExceptionToBaseResponse(ex); return(response.Cast <LoginResponse>()); } }
private int EntitySet <T, E>(T dto) where T : DTO.DTOBase { using (var context = new CharityEntities()) { if (dto.ID == 0) { dto.CreateDate = DateTime.Now; dto.Active = true; } else { dto.ModifyDate = DateTime.Now; } E entity = Map <T, E>(dto); var entry = context.Entry(entity); entry.State = dto.ID == 0 ? System.Data.Entity.EntityState.Added : System.Data.Entity.EntityState.Modified; if (dto.ID > 0) { entry.Property("CreateDate").IsModified = false; entry.Property("CreateUser").IsModified = false; } context.SaveChanges(); return((int)entry.Property("ID").OriginalValue); } }
public ResponseBase PatronIntroducerSet(PatronRequest request) { try { NullSafeCheck(request, "PatronRequest"); NullSafeCheck(request.DTO, "DTO"); if (request.DTO.ID <= 0) { throw new CustomException(BAD_REQ_USER_MESSAGE, $"Patron ID {request.DTO.ID} is not valid"); } if ((request.DTO.IntroducerID ?? 0) <= 0) { throw new CustomException(BAD_REQ_USER_MESSAGE, $"IntroducerID {request.DTO.IntroducerID} is not valid"); } using (var context = new CharityEntities()) { var patron = context.Patrons.FirstOrDefault(p => p.ID == request.DTO.ID); patron.IntroducerID = request.DTO.IntroducerID; context.SaveChanges(); } return(new ResponseBase(true, 1)); } catch (Exception ex) { LogHelper.Log(ex); return(ExceptionToBaseResponse(ex)); } }
public ResponseBase PersonPictureSet(PersonRequest request) { try { NullSafeCheck(request, "PersonRequest"); NullSafeCheck(request.Picture, "Picture"); if (request.Picture.PersonID <= 0) { throw new CustomException(BAD_REQ_USER_MESSAGE, $"PersonID {request.Picture.PersonID} is not valid"); } using (var context = new CharityEntities()) { var picture = context.Pictures.FirstOrDefault(p => p.PersonID == request.Picture.PersonID); request.Picture.ID = picture?.ID ?? 0; } var result = EntitySet <PictureDTO, Picture>(request.Picture); return(new ResponseBase(true, result)); } catch (Exception ex) { LogHelper.Log(ex); return(ExceptionToBaseResponse(ex)); } }
public PatronResponse PatronGetList(PatronRequest request) { List <PatronDTO> result = null; try { NullSafeCheck(request, "Request"); NullSafeCheck(request.Filter, "Filter"); using (var context = new CharityEntities()) { var filter = request.Filter; var query = context.Patrons.AsNoTracking().AsQueryable(); if (filter.ID > 0) { query = query.Where(p => p.Active && p.ID == filter.ID); } else { if (filter.Active != null) { query = query.Where(p => p.Active == filter.Active); } if (filter.CreateDate?.From != null) { query = query.Where(p => p.CreateDate >= filter.CreateDate.From); } if (filter.CreateDate?.To != null) { query = query.Where(p => p.CreateDate <= filter.CreateDate.To); } if (filter.PersonID > 0) { query = query.Where(p => p.PersonID == filter.PersonID); } } result = query.Select(PatronDTOMapper).ToList(); if (request.LoadPerson) { var persons = context.People.AsNoTracking(); result.ForEach(patron => { var person = persons.FirstOrDefault(p => p.ID == patron.PersonID); patron.Person = PersonDTOMapper(person); }); } } return(new PatronResponse { Success = true, ResultList = result }); } catch (Exception ex) { var response = ExceptionToBaseResponse(ex); return(response.Cast <PatronResponse>()); } }
public DocumentResponse DocumentGet(DocumentRequest request) { try { DocumentDTO result = null; NullSafeCheck(request, "DocumentRequest"); NullSafeCheck(request.Filter, "Filter"); if (request.Filter.ID <= 0) { throw new ArgumentException($"DocumentID is not valid '{request.Filter.ID}'"); } using (var context = new CharityEntities()) { var document = context.Documents.AsNoTracking().FirstOrDefault(d => d.ID == request.Filter.ID); result = DocumentDTOMapper.Invoke(document); } return(new DocumentResponse { Success = true, Result = result }); } catch (Exception ex) { var response = ExceptionToBaseResponse(ex); return(response.Cast <DocumentResponse>()); } }
public IntroducerResponse IntroducerGetList(IntroducerRequest request) { List <IntroducerDTO> result = null; try { NullSafeCheck(request, "IntroducerRequest"); UserCheck(request); var filter = request.Filter; using (var context = new CharityEntities()) { var query = context.Introducers.AsNoTracking().AsQueryable(); if (filter != null) { if (filter.ID > 0) { query = query.Where(p => p.Active && p.ID == filter.ID); } if (filter.PersonID > 0) { query = query.Where(p => p.Active && p.PersonID == filter.PersonID); } else { if (filter.Active != null) { query = query.Where(p => p.Active == filter.Active); } if (filter.CreateDate?.From != null) { query = query.Where(p => p.CreateDate >= filter.CreateDate.From); } if (filter.CreateDate?.To != null) { query = query.Where(p => p.CreateDate <= filter.CreateDate.To); } } } result = query.Select(IntroducerDTOMapper).ToList(); if (request.LoadPerson) { var people = context.People.AsNoTracking(); result.ForEach(i => i.Person = PersonDTOMapper.Invoke(people.FirstOrDefault(p => p.ID == i.PersonID))); } } return(new IntroducerResponse { Success = true, ResultList = result }); } catch (Exception ex) { var response = ExceptionToBaseResponse(ex); return(response.Cast <IntroducerResponse>()); } }
public PatronResponse PatronGet(PatronRequest request) { try { NullSafeCheck(request, "Request"); NullSafeCheck(request.Filter, "Filter"); if (request.Filter.ID <= 0 && request.Filter.PersonID <= 0 && string.IsNullOrEmpty(request.Filter.NationalNo)) { throw new CustomException(INVALID_REQ_USER_MESSAGE, "ID,PersonID and NationalNo is invalid"); } PatronDTO result = null; using (var context = new CharityEntities()) { var query = context.Patrons.AsNoTracking().AsQueryable(); if (request.Filter.ID > 0) { query = query.Where(p => p.Active && p.ID == request.Filter.ID); } else if (request.Filter.PersonID > 0) { query = query.Where(p => p.PersonID == request.Filter.PersonID); } else if (string.IsNullOrEmpty(request.Filter.NationalNo) == false) { var person = context.People.AsNoTracking().FirstOrDefault(p => p.NationalNo == request.Filter.NationalNo); query = query.Where(p => p.PersonID == person.ID); } result = query.Select(PatronDTOMapper).FirstOrDefault(); if (request.LoadPerson) { var people = context.People.AsNoTracking(); var person = people.FirstOrDefault(p => p.ID == result.PersonID); result.Person = PersonDTOMapper(person); } } if (result == null) { throw new CustomException("نتیجه ای یافت نشد", "Patron not found"); } return(new PatronResponse { Success = result != null, ResultID = result?.ID ?? 0, Result = result }); } catch (Exception ex) { var response = ExceptionToBaseResponse(ex); return(response.Cast <PatronResponse>()); } }
public PersonResponse PersonGetList(PersonRequest request) { List <PersonDTO> result = null; try { NullSafeCheck(request); NullSafeCheck(request.Filter); var filter = request.Filter; using (var context = new CharityEntities()) { var query = context.People.AsNoTracking().AsQueryable(); if (filter.ID > 0) { query = query.Where(p => p.Active && p.ID == filter.ID); } else if (filter.IDList?.Count > 0) { query = query.Where(p => p.Active && filter.IDList.Contains(p.ID)); } else { if (filter.Active != null) { query = query.Where(p => p.Active == filter.Active); } if (filter.CreateDate?.From != null) { query = query.Where(p => p.CreateDate >= filter.CreateDate.From); } if (filter.CreateDate?.To != null) { query = query.Where(p => p.CreateDate <= filter.CreateDate.To); } query = query.Where(p => p.NationalNo.Contains(filter.NationalNo)); query = query.Where(p => p.FirstName.StartsWith(filter.FirstName)); query = query.Where(p => p.LastName.StartsWith(filter.LastName)); } result = query.Select(PersonDTOMapper).ToList(); } return(new PersonResponse { Success = true, ResultList = result }); } catch (Exception ex) { var response = ExceptionToBaseResponse(ex); return(response.Cast <PersonResponse>()); } }
public ResearchResponse ResearchGetList(ResearchRequest request) { List <ResearchDTO> result = null; try { NullSafeCheck(request, "ResearchRequest"); var filter = request.Filter; using (var context = new CharityEntities()) { var query = context.Researches.AsNoTracking().AsQueryable(); if (filter != null) { if (filter.ID > 0) { query = query.Where(p => p.Active && p.ID == filter.ID); } else { if (filter.Active != null) { query = query.Where(p => p.Active == filter.Active); } if (filter.CreateDate?.From != null) { query = query.Where(p => p.CreateDate >= filter.CreateDate.From); } if (filter.CreateDate?.To != null) { query = query.Where(p => p.CreateDate <= filter.CreateDate.To); } if (filter.RequestID > 0) { query = query.Where(p => p.RequestID == filter.RequestID); } } } result = query.Select(Mapper.ResearchDTOMapper).ToList(); } return(new ResearchResponse { Success = true, ResultList = result }); } catch (Exception ex) { var response = ExceptionToBaseResponse(ex); return(response.Cast <ResearchResponse>()); } }
public UserResponse UserGetList(UserRequest request) { List <UserDTO> result = null; try { NullSafeCheck(request); NullSafeCheck(request.Filter, "Filter"); var filter = request.Filter; using (var context = new CharityEntities()) { var query = context.Users.AsNoTracking().AsQueryable(); if (filter.ID > 0) { query = query.Where(p => p.Active && p.ID == filter.ID); } else { if (filter.Active != null) { query = query.Where(u => u.Active == filter.Active); } if (filter.CreateDate?.From != null) { query = query.Where(u => u.CreateDate >= filter.CreateDate.From); } if (filter.CreateDate?.To != null) { query = query.Where(u => u.CreateDate <= filter.CreateDate.To); } if (request.Filter?.UserName?.Length > 0) { query = query.Where(u => u.UserName.StartsWith(filter.UserName)); } } result = query.Select(UserDTOMapper).ToList(); } return(new UserResponse { Success = true, ResultList = result }); } catch (Exception ex) { var response = ExceptionToBaseResponse(ex); return(response.Cast <UserResponse>()); } }
public PictureResponse PersonPictureGet(PersonRequest request) { try { NullSafeCheck(request, "Request"); NullSafeCheck(request.Filter, "Filter"); var filter = request.Filter; IEnumerable <PictureDTO> result = null; using (var context = new CharityEntities()) { var query = context.Pictures.AsNoTracking().AsQueryable(); if (filter.ID > 0) { query = query.Where(p => p.PersonID == filter.ID); } else if (filter.IDList?.Count > 0) { query = query.Where(p => filter.IDList.Contains(p.PersonID)); } else if (filter.NationalNo?.Length == 10) { var id = context.People.FirstOrDefault(p => p.NationalNo.Equals(filter.NationalNo))?.ID ?? 0; query = query.Where(p => p.PersonID == id); } else { throw new CustomException("فیلتری یافت نشد. برای دریافت همه تصاویر از سرویس دیگری استفاده کنید", "No Filter found!"); } result = query.Select(PictureDTOMapper); if (result == null) { throw new CustomException("تصویری یافت نشد", $"No picture found for personId '{request.Filter.ID}'"); } return(new PictureResponse { Success = true, ResultList = result.ToList() }); } } catch (Exception ex) { LogHelper.Log(ex); return(ExceptionToBaseResponse(ex).Cast <PictureResponse>()); } }
private bool EntityDelete <T, E>(int id) where T : DTOBase { using (var context = new CharityEntities()) { T dto = Activator.CreateInstance <T>(); dto.ID = id; dto.Active = false; dto.ModifyDate = DateTime.Now; E entity = Map <T, E>(dto); var entry = context.Entry(entity); var activeProp = entry.Property("Active"); if (activeProp != null) { entry.State = System.Data.Entity.EntityState.Modified; foreach (var item in entity.GetType().GetProperties()) { if (item.GetGetMethod().IsVirtual) { continue; } if (item.Name == "Active" || item.Name == "ModifyDate" || item.Name == "State" || item.Name == "ID") { continue; } var prop = entry.Property(item.Name); if (prop != null) { prop.IsModified = false; } } } else { entry.State = System.Data.Entity.EntityState.Deleted; } context.SaveChanges(); return(true); } }
public ResponseBase RequestResearch(RequestRequest request) { try { NullSafeCheck(request, "RequestRequest"); NullSafeCheck(request.DTO, "RequestDTO"); UserCheck(request, request.DTO); using (var context = new CharityEntities()) { var entity = context.Requests.FirstOrDefault(r => r.ID == request.DTO.ID); entity.ResearchDate = DateTime.Now; context.SaveChanges(); } return(new ResponseBase(true, 1)); } catch (Exception ex) { return(ExceptionToBaseResponse(ex)); } }
public EntityResponse EntityGetList(EntityRequest request) { List <EntityDTO> result = null; try { NullSafeCheck(request, "EntityRequest"); var filter = request.Filter; using (var context = new CharityEntities()) { var query = context.Entities.AsNoTracking().AsQueryable(); if (filter != null) { if (filter.ID > 0) { query = query.Where(p => p.ID == filter.ID); } else { if (filter.Key?.Length > 0) { query = query.Where(p => p.EntityKey.ToLower() == filter.Key.ToLower()); } } } result = query.Select(EntityDTOMapper).ToList(); } return(new EntityResponse { Success = true, ResultList = result }); } catch (Exception ex) { var response = ExceptionToBaseResponse(ex); return(response.Cast <EntityResponse>()); } }
public RequestResponse RequestLastNo() { try { using (var context = new CharityEntities()) { int no = 0; if (context.Requests.Count() > 0) { no = context.Requests.AsNoTracking().Select(r => int.Parse(r.No)).Max(); } return(new RequestResponse { Success = true, MaxNo = no }); } } catch (System.Exception ex) { return(new RequestResponse { Success = false, Message = ex.Message, UserMessage = "خطا هنگام دریافت داده" }); } }
public PersonResponse PersonGet(PersonRequest request) { try { PersonDTO result = null; using (var context = new CharityEntities()) { var query = context.People.AsNoTracking().AsQueryable(); if (request.Filter.ID > 0) { query = query.Where(p => p.Active && p.ID == request.Filter.ID); } else { query = query.Where(p => p.NationalNo == request.Filter.NationalNo); } result = query.Select(PersonDTOMapper).FirstOrDefault(); } if (result == null) { throw new CustomException("نتیجه ای یافت نشد", "Person not found"); } return(new PersonResponse { Success = result != null, ResultID = result?.ID ?? 0, Result = result }); } catch (Exception ex) { var response = ExceptionToBaseResponse(ex); return(response.Cast <PersonResponse>()); } }
public UserResponse UserGet(UserRequest request) { try { NullSafeCheck(request); NullSafeCheck(request.Filter); using (var context = new CharityEntities()) { var query = context.Users.AsNoTracking().AsQueryable(); if (request.Filter.ID > 0) { query = query.Where(u => u.ID == request.Filter.ID); } else if (!string.IsNullOrEmpty(request.Filter.UserName)) { query = query.Where(u => u.UserName.ToLower() == request.Filter.UserName.ToLower()); } else if (request.Filter.PersonID > 0) { query = query.Where(u => u.PersonID == request.Filter.PersonID); } var user = UserDTOMapper(query.FirstOrDefault()); return(new UserResponse { Success = user != null, ResultID = user?.ID ?? 0, Result = user }); } } catch (Exception ex) { var response = ExceptionToBaseResponse(ex); return(response.Cast <UserResponse>()); } }