public HttpResponseMessage CreateSpeaker(SpeakerInfo speaker) { try { var timeStamp = DateTime.Now; speaker.CreatedByDate = timeStamp; speaker.CreatedByUserId = UserInfo.UserID; speaker.LastUpdatedByDate = timeStamp; speaker.LastUpdatedByUserId = UserInfo.UserID; if (speaker.RegistrationId == 0) { speaker.RegistrationId = null; } SpeakerDataAccess.CreateItem(speaker); var speakers = SpeakerDataAccess.GetItems(speaker.CodeCampId); var savedSpeaker = speakers.OrderByDescending(s => s.CreatedByDate).FirstOrDefault(s => s.Email == speaker.Email); var response = new ServiceResponse <SpeakerInfo> { Content = savedSpeaker }; return(Request.CreateResponse(HttpStatusCode.OK, response.ObjectToJson())); } catch (Exception ex) { Exceptions.LogException(ex); return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ERROR_MESSAGE)); } }
public static SpeakerInfo ToSpeakerInfo(this Speaker speaker, Func <Speaker, bool> isSelected = null) { SpeakerInfo speakerInfo = speaker.ConvertTo <SpeakerInfo>(); speakerInfo.Selected = isSelected?.Invoke(speaker) ?? false; speakerInfo.HasPhoto = speaker.PhotoPath != null; return(speakerInfo); }
public static SpeakerInfo ToSpeakerInfo(this DbSpeaker dbSpeaker, Func <DbSpeaker, bool> isSelected = null) { SpeakerInfo speakerInfo = dbSpeaker.ConvertTo <SpeakerInfo>(); speakerInfo.FullName = $"{speakerInfo.FirstName} {speakerInfo.LastName}"; speakerInfo.Selected = isSelected?.Invoke(dbSpeaker) ?? false; return(speakerInfo); }
/// <summary> /// 生成参数字符串。 /// </summary> /// <returns></returns> public override string ToString() { string szParams = string.Format("ssm=1,{0},spd={1},aue=speex-wb;7,vol={2},auf=audio/L16;rse=unicode;rate={3}", SpeakerInfo.GetExpression(this.Speaker), SpeechSpeedInfo.GetKey(this.Speed), SpeechVolumeInfo.GetKey(this.Volume), this.SampleRate); return(szParams); }
public void NextSpeaker(Queue <string> dialogue, string speakerName, Sprite speakerImage, UnityAction next) { SpeakerInfo speaker = new SpeakerInfo(speakerName, speakerImage); DisplaySpeaker(speaker); sentencesToDisplay = dialogue; nextAction = next; Next(); multiTextbox.SetActive(false); basicTextbox.SetActive(true); }
private void DisplaySpeaker(SpeakerInfo speaker) { if (!speakerName.gameObject.activeInHierarchy) { speakerName.gameObject.SetActive(true); } if (!speakerImage.gameObject.activeInHierarchy) { speakerImage.gameObject.SetActive(true); } speakerName.text = speaker.name; speakerImage.sprite = speaker.image; }
public async Task SetSpeakerInfoAsync(SpeakerInfo speakerInfo, CancellationToken cancellationToken) { try { await this.StateManager.SetStateAsync(StateKeySpeakerInfo, speakerInfo, cancellationToken); ActorEventSource.Current.ActorMessage(this, $"Saved SpeakerInfo state"); } catch (Exception ex) { ActorEventSource.Current.ActorMessage(this, $"Failed to save SpeakerInfo state: {ex.Message}"); } }
public void DisplayNextSentence() { ToggleAllDialogUI(true); if (sentences.Count == 0) { EndDialogue(); return; } speakerInfo = speakers.Dequeue().GetComponent <SpeakerInfo>(); dialogHeadImage.sprite = speakerInfo.dialogHead.sprite; nameText.text = speakerInfo.speakerName.text; string sentence = sentences.Dequeue(); dialogText.text = sentence; }
protected override void OnLoad(EventArgs e) { base.OnLoad(e); foreach (SpeakerInfo item in SpeakerInfo.GetList()) { comboBox1.Items.Add(item); } foreach (SpeechSpeedEnums item in Enum.GetValues(typeof(SpeechSpeedEnums))) { comboBox2.Items.Add(new EnumData <SpeechSpeedEnums>(item)); } foreach (SpeechVolumeEnums item in Enum.GetValues(typeof(SpeechVolumeEnums))) { comboBox3.Items.Add(new EnumData <SpeechVolumeEnums>(item)); } comboBox1.SelectedIndex = 0; comboBox2.SelectedIndex = 2; comboBox3.SelectedIndex = 4; }
public void NextSpeaker(string[] options, string speakerName, Sprite speakerImage, UnityAction <int>[] onClicks, bool useSpecial = false) { SpeakerInfo speaker = new SpeakerInfo(speakerName, speakerImage); DisplaySpeaker(speaker); HideAllButtons(); // Initialising Buttons for (int i = 0; i < options.Length; i++) { if (i == 2 && useSpecial && onClicks[i] != null) { InitButton(3, options[i], onClicks[i]); return; } if (onClicks[i] != null) { InitButton(i, options[i], onClicks[i]); } } basicTextbox.SetActive(false); multiTextbox.SetActive(true); }
public HttpResponseMessage UpdateSpeaker(SpeakerInfo speaker) { try { var portalId = PortalSettings.PortalId; var updatesToProcess = false; var originalSpeaker = SpeakerDataAccess.GetItem(speaker.SpeakerId, speaker.CodeCampId); if (!string.Equals(speaker.SpeakerName, originalSpeaker.SpeakerName)) { originalSpeaker.SpeakerName = speaker.SpeakerName; updatesToProcess = true; } if (!string.Equals(speaker.URL, originalSpeaker.URL)) { originalSpeaker.URL = speaker.URL; updatesToProcess = true; } if (!string.Equals(speaker.Email, originalSpeaker.Email)) { originalSpeaker.Email = speaker.Email; updatesToProcess = true; } if (!string.Equals(speaker.CompanyName, originalSpeaker.CompanyName)) { originalSpeaker.CompanyName = speaker.CompanyName; updatesToProcess = true; } if (!string.Equals(speaker.CompanyTitle, originalSpeaker.CompanyTitle)) { originalSpeaker.CompanyTitle = speaker.CompanyTitle; updatesToProcess = true; } if (!string.Equals(speaker.Bio, originalSpeaker.Bio)) { originalSpeaker.Bio = speaker.Bio; updatesToProcess = true; } if (speaker.IsAuthor != originalSpeaker.IsAuthor) { originalSpeaker.IsAuthor = speaker.IsAuthor; updatesToProcess = true; } if (!string.IsNullOrEmpty(speaker.AvatarDataURIData)) { var fileData = Convert.FromBase64String(speaker.AvatarDataURIData); // get the folder from the API var folderInfo = FolderManager.Instance.GetFolder( portalId: portalId, folderPath: string.Format(Globals.SPEAKER_AVATAR_FOLDER_PATH_FORMAT, speaker.CodeCampId)); if (folderInfo == null) { // add the folder since it doesn't yet exist folderInfo = FolderManager.Instance.AddFolder( portalId: portalId, folderPath: string.Format(Globals.SPEAKER_AVATAR_FOLDER_PATH_FORMAT, speaker.CodeCampId)); } IFileInfo fileInfo = null; using (var reader = new MemoryStream(fileData)) { var filename = string.Format(Globals.SPEAKER_AVATAR_FILENAME_FORMAT, speaker.SpeakerId, DateTime.Now.ToString(Globals.SPEAKER_AVATAR_FILENAME_STAMP_FORMAT), Globals.SPEAKER_AVATAR_FILEEXTENSION); fileInfo = FileManager.Instance.AddFile(folderInfo, filename, reader, true); speaker.IconFile = string.Format(Globals.SPEAKER_ICON_FILE_PATH, portalId, fileInfo.RelativePath); originalSpeaker.IconFile = speaker.IconFile; } updatesToProcess = true; } if (speaker.RemoveAvatar) { speaker.IconFile = string.Empty; originalSpeaker.IconFile = speaker.IconFile; updatesToProcess = true; } if (originalSpeaker.CustomProperties != null) { // parse custom properties for updates foreach (var property in originalSpeaker.CustomPropertiesObj) { if (speaker.CustomPropertiesObj.Any(p => p.Name == property.Name)) { // see if the existing property needs to be updated var prop = speaker.CustomPropertiesObj.FirstOrDefault(p => p.Name == property.Name); if (!string.Equals(prop.Value, property.Value)) { property.Value = prop.Value; updatesToProcess = true; } } else { // delete the property originalSpeaker.CustomPropertiesObj.Remove(property); updatesToProcess = true; } } } if (speaker.CustomPropertiesObj != null) { // add any new properties if (originalSpeaker.CustomProperties == null) { foreach (var property in speaker.CustomPropertiesObj) { originalSpeaker.CustomPropertiesObj.Add(property); updatesToProcess = true; } } else { foreach (var property in speaker.CustomPropertiesObj.Where(property => !originalSpeaker.CustomPropertiesObj.Contains(property))) { originalSpeaker.CustomPropertiesObj.Add(property); updatesToProcess = true; } } } if (updatesToProcess) { SpeakerDataAccess.UpdateItem(originalSpeaker); } var savedSpeaker = SpeakerDataAccess.GetItem(speaker.SpeakerId, speaker.CodeCampId); var response = new ServiceResponse <SpeakerInfo> { Content = savedSpeaker }; return(Request.CreateResponse(HttpStatusCode.OK, response.ObjectToJson())); } catch (Exception ex) { Exceptions.LogException(ex); return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ERROR_MESSAGE)); } }
public HttpResponseMessage CreateSpeaker(SpeakerInfo speaker) { try { var portalId = PortalSettings.PortalId; var timeStamp = DateTime.Now; speaker.CreatedByDate = timeStamp; speaker.CreatedByUserId = UserInfo.UserID; speaker.LastUpdatedByDate = timeStamp; speaker.LastUpdatedByUserId = UserInfo.UserID; if (speaker.RegistrationId == 0) { speaker.RegistrationId = null; } SpeakerDataAccess.CreateItem(speaker); if (!string.IsNullOrEmpty(speaker.AvatarDataURIData)) { // NOTE: This is super slow for some reason? // var decodedAvatar = B64Decode(speaker.AvatarDataURIData); var fileData = Convert.FromBase64String(speaker.AvatarDataURIData); // get the folder from the API var folderInfo = FolderManager.Instance.GetFolder( portalId: portalId, folderPath: string.Format(Globals.SPEAKER_AVATAR_FOLDER_PATH_FORMAT, speaker.CodeCampId)); if (folderInfo == null) { // add the folder since it doesn't yet exist folderInfo = FolderManager.Instance.AddFolder( portalId: portalId, folderPath: string.Format(Globals.SPEAKER_AVATAR_FOLDER_PATH_FORMAT, speaker.CodeCampId)); } IFileInfo fileInfo = null; using (var reader = new MemoryStream(fileData)) { var filename = string.Format(Globals.SPEAKER_AVATAR_FILENAME_FORMAT, speaker.SpeakerId, DateTime.Now.ToString(Globals.SPEAKER_AVATAR_FILENAME_STAMP_FORMAT), Globals.SPEAKER_AVATAR_FILEEXTENSION); fileInfo = FileManager.Instance.AddFile(folderInfo, filename, reader, true); speaker.IconFile = string.Format(Globals.SPEAKER_ICON_FILE_PATH, portalId, fileInfo.RelativePath); } SpeakerDataAccess.UpdateItem(speaker); } var speakers = SpeakerDataAccess.GetItems(speaker.CodeCampId); var savedSpeaker = speakers.OrderByDescending(s => s.CreatedByDate).FirstOrDefault(s => s.Email == speaker.Email); var response = new ServiceResponse <SpeakerInfo> { Content = savedSpeaker }; return(Request.CreateResponse(HttpStatusCode.OK, response.ObjectToJson())); } catch (Exception ex) { Exceptions.LogException(ex); return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ERROR_MESSAGE)); } }
public HttpResponseMessage UpdateSpeaker(SpeakerInfo speaker) { try { var updatesToProcess = false; var originalSpeaker = SpeakerDataAccess.GetItem(speaker.SpeakerId, speaker.CodeCampId); if (!string.Equals(speaker.SpeakerName, originalSpeaker.SpeakerName)) { originalSpeaker.SpeakerName = speaker.SpeakerName; updatesToProcess = true; } if (!string.Equals(speaker.URL, originalSpeaker.URL)) { originalSpeaker.URL = speaker.URL; updatesToProcess = true; } if (!string.Equals(speaker.Email, originalSpeaker.Email)) { originalSpeaker.Email = speaker.Email; updatesToProcess = true; } if (!string.Equals(speaker.CompanyName, originalSpeaker.CompanyName)) { originalSpeaker.CompanyName = speaker.CompanyName; updatesToProcess = true; } if (!string.Equals(speaker.CompanyTitle, originalSpeaker.CompanyTitle)) { originalSpeaker.CompanyTitle = speaker.CompanyTitle; updatesToProcess = true; } if (!string.Equals(speaker.Bio, originalSpeaker.Bio)) { originalSpeaker.Bio = speaker.Bio; updatesToProcess = true; } if (speaker.IsAuthor != originalSpeaker.IsAuthor) { originalSpeaker.IsAuthor = speaker.IsAuthor; updatesToProcess = true; } if (originalSpeaker.CustomProperties != null) { // parse custom properties for updates foreach (var property in originalSpeaker.CustomPropertiesObj) { if (speaker.CustomPropertiesObj.Any(p => p.Name == property.Name)) { // see if the existing property needs to be updated var prop = speaker.CustomPropertiesObj.FirstOrDefault(p => p.Name == property.Name); if (!string.Equals(prop.Value, property.Value)) { property.Value = prop.Value; updatesToProcess = true; } } else { // delete the property originalSpeaker.CustomPropertiesObj.Remove(property); updatesToProcess = true; } } } if (speaker.CustomPropertiesObj != null) { // add any new properties if (originalSpeaker.CustomProperties == null) { foreach (var property in speaker.CustomPropertiesObj) { originalSpeaker.CustomPropertiesObj.Add(property); updatesToProcess = true; } } else { foreach (var property in speaker.CustomPropertiesObj.Where(property => !originalSpeaker.CustomPropertiesObj.Contains(property))) { originalSpeaker.CustomPropertiesObj.Add(property); updatesToProcess = true; } } } if (updatesToProcess) { SpeakerDataAccess.UpdateItem(originalSpeaker); } var savedSpeaker = SpeakerDataAccess.GetItem(speaker.SpeakerId, speaker.CodeCampId); var response = new ServiceResponse <SpeakerInfo> { Content = savedSpeaker }; return(Request.CreateResponse(HttpStatusCode.OK, response.ObjectToJson())); } catch (Exception ex) { Exceptions.LogException(ex); return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ERROR_MESSAGE)); } }
/// <param name='cancellationToken'> /// Cancellation token. /// </param> public async Task <HttpOperationResponse <SpeakerInfo> > GetTopSpeakersWithOperationResponseAsync(CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { // Tracing bool shouldTrace = ServiceClientTracing.IsEnabled; string invocationId = null; if (shouldTrace) { invocationId = ServiceClientTracing.NextInvocationId.ToString(); Dictionary <string, object> tracingParameters = new Dictionary <string, object>(); ServiceClientTracing.Enter(invocationId, this, "GetTopSpeakersAsync", tracingParameters); } // Construct URL string url = ""; url = url + "/api/Conferences/TopSpeakers"; string baseUrl = this.Client.BaseUri.AbsoluteUri; // Trim '/' character from the end of baseUrl and beginning of url. if (baseUrl[baseUrl.Length - 1] == '/') { baseUrl = baseUrl.Substring(0, baseUrl.Length - 1); } if (url[0] == '/') { url = url.Substring(1); } url = baseUrl + "/" + url; url = url.Replace(" ", "%20"); // Create HTTP transport objects HttpRequestMessage httpRequest = new HttpRequestMessage(); httpRequest.Method = HttpMethod.Get; httpRequest.RequestUri = new Uri(url); // Set Credentials if (this.Client.Credentials != null) { cancellationToken.ThrowIfCancellationRequested(); await this.Client.Credentials.ProcessHttpRequestAsync(httpRequest, cancellationToken).ConfigureAwait(false); } // Send Request if (shouldTrace) { ServiceClientTracing.SendRequest(invocationId, httpRequest); } cancellationToken.ThrowIfCancellationRequested(); HttpResponseMessage httpResponse = await this.Client.HttpClient.SendAsync(httpRequest, cancellationToken).ConfigureAwait(false); if (shouldTrace) { ServiceClientTracing.ReceiveResponse(invocationId, httpResponse); } HttpStatusCode statusCode = httpResponse.StatusCode; cancellationToken.ThrowIfCancellationRequested(); string responseContent = await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); if (statusCode != HttpStatusCode.OK) { HttpOperationException <object> ex = new HttpOperationException <object>(); ex.Request = httpRequest; ex.Response = httpResponse; ex.Body = null; if (shouldTrace) { ServiceClientTracing.Error(invocationId, ex); } throw ex; } // Create Result HttpOperationResponse <SpeakerInfo> result = new HttpOperationResponse <SpeakerInfo>(); result.Request = httpRequest; result.Response = httpResponse; // Deserialize Response if (statusCode == HttpStatusCode.OK) { SpeakerInfo resultModel = new SpeakerInfo(); JToken responseDoc = null; if (string.IsNullOrEmpty(responseContent) == false) { responseDoc = JToken.Parse(responseContent); } if (responseDoc != null) { resultModel.DeserializeJson(responseDoc); } result.Body = resultModel; } if (shouldTrace) { ServiceClientTracing.Exit(invocationId, result); } return(result); }