public IHttpActionResult FeedBack(UserFeedbackModel Model) { var feedback = new UserFeedback(); feedback.Date = DateTime.Now.ToUniversalTime(); feedback.Description = Model.Description; feedback.Rating = 0; feedback.UserId = Model.UserId; try { using (AppDBContext context = new AppDBContext()) { try { var repo = new UserFeedbackRepository(context); repo.Add(feedback); } catch (Exception ex) { return(InternalServerError(ex)); } } return(Ok()); } catch (Exception ex) { Logger.Log(typeof(UserController), ex.Message + ex.StackTrace, LogType.ERROR); return(InternalServerError()); } }
public HttpResponseMessage GetOneFeedback(int id) { try { UserFeedbackModel feedback = logic.GetOneFeedback(id); feedback.username = userlogic.GetUserName(feedback.userid); return(Request.CreateResponse(HttpStatusCode.OK, feedback)); } catch (Exception ex) { return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex)); } }
public HttpResponseMessage AddFeedback(UserFeedbackModel feedbackmodel) { try { if (!ModelState.IsValid) { List <PropErrors> errorList = ErrorExtractor.ExtractErrors(ModelState); return(Request.CreateResponse(HttpStatusCode.BadRequest, errorList)); } UserFeedbackModel feedback = logic.AddFeedback(feedbackmodel); feedback.username = userlogic.GetUserName(feedback.userid); return(Request.CreateResponse(HttpStatusCode.Created, feedback)); } catch (Exception ex) { return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex)); } }
public void AddUserFeedback(UserFeedbackModel model) { SemantriaHelper.AddUserFeedbackScore(model); using (ipl_userprofilerEntities entity = new ipl_userprofilerEntities()) { var homeAwayProperty = entity.HomeAwayProperties.First(res => res.Id == model.PropertyId); var request = new HomeAwayFeedback { PropertyId = model.PropertyId, UserEmail = model.UserEmail, UserName = model.UserName, Text = model.Text, AddedAt = DateTime.Now }; entity.HomeAwayFeedbacks.Add(request); //Map feedbackto to claim property var requestId = entity.CliqueClaimRequests.First(res => res.Name == homeAwayProperty.Name && res.Zip == homeAwayProperty.Zip).Id; var claimFeedback = new CliqueClaimRequestFeedback { RequestId = requestId, UserEmail = model.UserEmail, UserName = model.UserName, Text = model.Text, Score = model.Score, AddedAt = DateTime.Now }; entity.CliqueClaimRequestFeedbacks.Add(claimFeedback); entity.SaveChanges(); } }
private async void Start() { var aggregator = new MessageAggregator(); _relay = aggregator; IConfigStore configStore = new AppDataConfigStore(); IPreviewImageStore previewStore = new AppDataPreviewImageStore(); _library = new Library(configStore, _previewBuilder, previewStore, _relay); var factory = new ImportFolderFactory(_library); // Main View var progressModel = new ProgressModel(); var applicationModel = new ApplicationModel(_relay); var searchViewModel = new SearchModel(_library, _relay); var itemsViewModel = new ItemsModel(_library, _relay); // Main Menu var importFoldersViewModel = new ImportFoldersModel(configStore, factory, _relay); var savedSearchesViewModel = new SavedSearchesModel(configStore, _relay); var collectionsViewModel = new CollectionsModel(configStore, _relay); // Detail Menu var detailMenuModel = new DetailMenuModel(_library, _relay); // Dialogs var addSavedSearchViewModel = new AddSavedSearchModel(_relay); var addImportFolderViewModel = new AddImportFolderModel(_relay); var applicationSettingsModel = new ApplicationSettingsModel(configStore); var userFeedbackModel = new UserFeedbackModel(); var exitingModel = new ExitingModel(_library, OnShutdownComplete); var editScreenModel = new EditScreenModel(_library); BindViewModels(); BindSettings(); // Wire up misc items _disposables.Add(importFoldersViewModel); _editScreen.MainView = _mainGroup; // Also restores app settings for import etc. await applicationSettingsModel.InitializeAsync(); await _library.InitializeAsync(); InitializeViewModelsAsync(); aggregator.Subscribe( // Main View progressModel, searchViewModel, itemsViewModel, // Main Menu importFoldersViewModel, savedSearchesViewModel, collectionsViewModel, // DetailMenu detailMenuModel, // Dialogs addSavedSearchViewModel, addImportFolderViewModel, applicationSettingsModel, userFeedbackModel, exitingModel, editScreenModel); void BindViewModels() { // Main View _progressView.BindTo(progressModel); _applicationView.BindTo(applicationModel); _searchView.BindTo(searchViewModel); _libraryView.BindTo(itemsViewModel); // Main Menu _importFoldersView.BindTo(importFoldersViewModel); _savedSearchesView.BindTo(savedSearchesViewModel); _collectionsView.BindTo(collectionsViewModel); // Detail Menu _detailMenu.BindTo(detailMenuModel); // Dialogs _addImportFolderDialog.BindTo(addImportFolderViewModel); _addSavedSearchDialog.BindTo(addSavedSearchViewModel); _applicationSettingsDialog.BindTo(applicationSettingsModel); _userFeedbackDialog.BindTo(userFeedbackModel); _exitingDialog.BindTo(exitingModel); _editScreen.BindTo(editScreenModel); } void BindSettings() { var rt = applicationSettingsModel.RuntimeSettings; rt.ImportParallelism.ValueChanged += factor => _library.Parallelism = factor; rt.LogLevel.ValueChanged += logLevel => UnityLogger.LogLevel = logLevel; rt.UiScalePercent.ValueChanged += factor => { foreach (var canvas in FindObjectsOfType <Canvas>()) { canvas.scaleFactor = applicationSettingsModel.UiScalePercent / 125f; } }; rt.ScrollSensitivity.ValueChanged += sensitivity => { foreach (var area in FindObjectsOfType <ScrollRect>()) { area.scrollSensitivity = sensitivity; } }; rt.PreviewResolution.ValueChanged += res => _previewBuilder.PreviewResolution.Value = Mathf.RoundToInt(Mathf.Pow(2f, res)); rt.PreviewJpegQuality.ValueChanged += quality => _previewBuilder.Quality = quality; } async void InitializeViewModelsAsync() { await savedSearchesViewModel.InitializeAsync(); await importFoldersViewModel.InitializeAsync(); await collectionsViewModel.InitializeAsync(); } }
public static void AddUserFeedbackScore(UserFeedbackModel model) { // Creates JSON serializer instance ISerializer serializer = new JsonSerializer(); // Initializes new session with the serializer object and the keys. using (Session session = Session.CreateSession(consumerKey, consumerSecret, serializer)) { // Error callback handler. This event will occur in case of server-side error session.Error += new Session.ErrorHandler(delegate(object sender, ResponseErrorEventArgs ea) { //Console.WriteLine(string.Format("{0}: {1}", (int)ea.Status, ea.Message)); }); //Obtaining subscription object to get user limits applicable on server side Subscription subscription = session.GetSubscription(); Dictionary <string, Semantria.Com.TaskStatus> docsTracker = new Dictionary <string, Semantria.Com.TaskStatus>(); List <Document> outgoingBatch = new List <Document>(subscription.BasicSettings.BatchLimit); string docId = Guid.NewGuid().ToString(); Document doc = new Document() { Id = docId, Text = model.Text }; outgoingBatch.Add(doc); docsTracker.Add(docId, Semantria.Com.TaskStatus.QUEUED); if (outgoingBatch.Count > 0) { // Queues batch of documents for processing on Semantria service if (session.QueueBatchOfDocuments(outgoingBatch) != -1) { Console.WriteLine(string.Format("{0} documents queued successfully.", outgoingBatch.Count)); } } List <DocAnalyticData> results = new List <DocAnalyticData>(); while (docsTracker.Any(item => item.Value == Semantria.Com.TaskStatus.QUEUED)) { System.Threading.Thread.Sleep(500); // Requests processed results from Semantria service Console.WriteLine("Retrieving your processed results..."); IList <DocAnalyticData> incomingBatch = session.GetProcessedDocuments(); foreach (DocAnalyticData item in incomingBatch) { if (docsTracker.ContainsKey(item.Id)) { docsTracker[item.Id] = item.Status; results.Add(item); } } } foreach (DocAnalyticData data in results) { float score = 0; // Printing of document entities if (data.Phrases != null && data.Phrases.Count > 0) { foreach (var entity in data.Phrases) { score += entity.SentimentScore; } score = score / data.Phrases.Count(); } model.Score = score; } } }
public void AddFeedback(UserFeedbackModel model) { RequestService service = new RequestService(); service.AddUserFeedback(model); }