Exemplo n.º 1
0
        public ICollection <Employee> Search(EmployeeSearchCondition condition)
        {
            try
            {
                using (OpenPOSDbEntities ctx = new OpenPOSDbEntities())
                {
                    ctx.ContextOptions.LazyLoadingEnabled = false;
                    ctx.Employees.MergeOption             = MergeOption.NoTracking;
                    ctx.ContactDetails.MergeOption        = MergeOption.NoTracking;

                    var items = ctx.Employees.Include("ContactDetail").Where(x => x.Status == true);

                    if (!string.IsNullOrEmpty(condition.Mobile) &&
                        !string.IsNullOrEmpty(condition.Email) &&
                        !string.IsNullOrEmpty(condition.Email))
                    {
                        items = items.Where(x => x.ContactDetail.ContactName.Contains(condition.Name) ||
                                            x.ContactDetail.Mobile.Contains(condition.Mobile) ||
                                            x.ContactDetail.Email.Contains(condition.Email));
                    }
                    else
                    {
                        if (!string.IsNullOrEmpty(condition.Name))
                        {
                            items = items.Where(x => x.ContactDetail.ContactName.Contains(condition.Name));
                        }

                        if (!string.IsNullOrEmpty(condition.Mobile))
                        {
                            items = items.Where(x => x.ContactDetail.Mobile.Contains(condition.Mobile));
                        }

                        if (!string.IsNullOrEmpty(condition.Email))
                        {
                            items = items.Where(x => x.ContactDetail.Email.Contains(condition.Email));
                        }
                    }

                    items = items.OrderBy(x => x.ContactDetail.ContactName);

                    if (condition.PageNo > 0 && condition.PageSize > 0)
                    {
                        items = items.Skip((condition.PageNo - 1) * condition.PageSize).Take(condition.PageSize);
                    }

                    return(new Collection <Employee>(items.ToList()));
                }
            }
            catch (Exception ex)
            {
                LogService.Error("Error while searching employees", ex);
                throw ex;
            }
        }
 public HttpResponseMessage SearchEmployee(EmployeeSearchCondition SearchCondition)
 {
     try
     {
         var result = _userBusiness.SearchEmployee(SearchCondition);
         //Task.Run(async () =>
         //{
         //    AzureStorageUploadFiles.GetInstance().DownloadPhotoAsync(result.ListResult[0].Avata);
         //});
         //Task.Run(async () =>
         //{
         //    AzureStorageUploadFiles.GetInstance().DeletePhotoAsync(result.ListResult[0].Avata);
         //});
         return(Request.CreateResponse(HttpStatusCode.OK, result));
     }
     catch (Exception ex)
     {
         logger.Error(ex.Message, ex.InnerException);
         return(Request.CreateResponse(HttpStatusCode.InternalServerError, ex.Message));
     }
 }