Esempio n. 1
0
        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));
            }
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        /// <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}");
            }
        }
Esempio n. 8
0
    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;
    }
Esempio n. 9
0
        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));
            }
        }
Esempio n. 13
0
        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));
            }
        }
Esempio n. 14
0
        /// <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);
        }