public ResponseModel<UserProductSurveyTemplateModel> GetTemplateInformationByRefKey(string username,string refKey) { var response = new ResponseModel<UserProductSurveyTemplateModel>(); var job = _db.CreateTemplateQuestionInfoes.SingleOrDefault(x=>x.referenceId == refKey); response.Status = 200; response.Message = "success"; response.Payload = new UserProductSurveyTemplateModel(); try { string earningPerThreadTemp = Convert.ToString(Convert.ToDouble(job.payPerUser) *(Convert.ToDouble(ConfigurationManager.AppSettings["dollarToRupeesValue"]))); string remainingThreadsTemp = string.Empty; if ((job.type == Constants.type_dataEntry && job.subType == Constants.subType_Transcription)|| (job.type == Constants.type_moderation && job.subType == Constants.subType_moderatingPhotos)) remainingThreadsTemp = Convert.ToString(Convert.ToInt32(job.totalThreads) - _db.UserMultipleJobMappings.Where(x => x.refKey == job.referenceId && x.isFirst==Constants.status_true).Count()); else remainingThreadsTemp = Convert.ToString(Convert.ToInt32(job.totalThreads) - _db.UserJobMappings.Where(x => x.refKey == job.referenceId).Count()); var userTemplate = new UserProductSurveyTemplateModel { title = job.title, type = job.type, subType = job.subType, refKey = job.referenceId, creationTime = job.creationTime, earningPerThreads = earningPerThreadTemp, currency = "INR", // hard coded currency totalThreads = job.totalThreads, // currently hard coded. remainingThreads = remainingThreadsTemp }; response.Payload =userTemplate; return response; } catch (Exception) { response.Status = 500;//some error occured response.Message = "failed"; return response; } }
private ResponseModel<List<UserProductSurveyTemplateModel>> GetAllTemplateInformationExcludingDoneAssigned(string username) { var response = new ResponseModel<List<UserProductSurveyTemplateModel>>(); var templateData = _db.CreateTemplateQuestionInfoes.OrderByDescending(x => x.creationTime).ToList(); response.Status = 200; response.Message = "success"; response.Payload = new List<UserProductSurveyTemplateModel>(); try { foreach (var job in templateData) { string earningPerThreadTemp = Convert.ToString(Convert.ToDouble(job.payPerUser) * (Convert.ToDouble(Convert.ToString(ConfigurationManager.AppSettings["dollarToRupeesValue"])))); string remainingThreadsTemp = string.Empty; var userTemplate = new UserProductSurveyTemplateModel { title = job.title, type = job.type, subType = job.subType, refKey = job.referenceId, creationTime = job.creationTime, earningPerThreads = earningPerThreadTemp, currency = "INR", // hard coded currency totalThreads = job.totalThreads }; if (job.type == Constants.type_dataEntry && job.subType == Constants.subType_Transcription) { var AlreadyAppliedJobs = _db.UserMultipleJobMappings.SingleOrDefault(x => x.username == username && x.refKey == job.referenceId && x.status != Constants.status_done); if (AlreadyAppliedJobs != null) { continue; } else { userTemplate.userStatus = "new"; userTemplate.userDeadline = "NA"; } remainingThreadsTemp = Convert.ToString(Convert.ToInt32(job.totalThreads) - _db.UserMultipleJobMappings.Where(x => x.refKey == job.referenceId).GroupBy(x => x.username).Count()); } else { var AlreadyAppliedJobs = _db.UserJobMappings.SingleOrDefault(x => x.username == username && x.refKey == job.referenceId); if (AlreadyAppliedJobs != null) { continue; } else { userTemplate.userStatus = "new"; userTemplate.userDeadline = "NA"; } remainingThreadsTemp = Convert.ToString(Convert.ToInt32(job.totalThreads) - _db.UserJobMappings.Where(x => x.refKey == job.referenceId).Count()); } userTemplate.remainingThreads = remainingThreadsTemp; response.Payload.Add(userTemplate); } return response; } catch (Exception ex) { response.Status = 500;//some error occured response.Message = "failed"; return response; } }
private ResponseModel<List<UserProductSurveyTemplateModel>> GetAllTemplateInformationIncludingDoneAssigned(string username) { var response = new ResponseModel<List<UserProductSurveyTemplateModel>>(); var templateData = _db.CreateTemplateQuestionInfoes.OrderByDescending(x => x.creationTime).ToList(); response.Status = 200; response.Message = "success"; response.Payload = new List<UserProductSurveyTemplateModel>(); try { var AlreadyAppliedMultipleJobsList = _db.UserMultipleJobMappings.Where(x => x.username == username && x.isFirst == Constants.status_true).ToList(); var AlreadyAppliedSingleJobsList = _db.UserJobMappings.Where(x => x.username == username).ToList(); foreach (var job in templateData) { string earningPerThreadTemp = Convert.ToString(Convert.ToDouble(job.payPerUser) * (Convert.ToDouble(Convert.ToString(ConfigurationManager.AppSettings["dollarToRupeesValue"])))); string remainingThreadsTemp = string.Empty; var userTemplate = new UserProductSurveyTemplateModel { title = job.title, type = job.type, subType = job.subType, refKey = job.referenceId, creationTime = job.creationTime, earningPerThreads = earningPerThreadTemp, currency = Constants.currency_INR, // hard coded currency totalThreads = job.totalThreads }; if ((job.type == Constants.type_dataEntry && job.subType == Constants.subType_Transcription)|| (job.type == Constants.type_moderation && job.subType == Constants.subType_moderatingPhotos)) { if (AlreadyAppliedMultipleJobsList.Any(x => x.refKey == job.referenceId)) { continue; // do not add if it is already done or assigned. //userTemplate.userStatus = AlreadyAppliedJobs.status; //userTemplate.userDeadline = AlreadyAppliedJobs.expectedDelivery; } else { userTemplate.userStatus = "new"; userTemplate.userDeadline = "NA"; } remainingThreadsTemp = Convert.ToString(Convert.ToInt32(job.totalThreads) - _db.UserMultipleJobMappings.Where(x => x.refKey == job.referenceId).GroupBy(x=>x.username).Count()); } else { if (AlreadyAppliedSingleJobsList.Any(x => x.refKey == job.referenceId)) { continue; // do not add if it is already done or assigned. //userTemplate.userStatus = AlreadyAppliedJobs.status; //userTemplate.userDeadline = AlreadyAppliedJobs.expectedDeliveryTime; } else { userTemplate.userStatus = "new"; userTemplate.userDeadline = "NA"; } remainingThreadsTemp = Convert.ToString(Convert.ToInt32(job.totalThreads) - _db.UserJobMappings.Where(x => x.refKey == job.referenceId).Count()); } userTemplate.remainingThreads = remainingThreadsTemp; if (Convert.ToInt32(remainingThreadsTemp) <= 0) continue; // do not add if all threads are consumed. response.Payload.Add(userTemplate); } return response; } catch (Exception ex) { response.Status = 500;//some error occured response.Message = "failed"; return response; } }