예제 #1
0
        public async Task <IActionResult> CreateAsync([FromBody] CreateChatEntryDto entry)
        {
            // Telemetry
            Telemetry.TrackEvent("CreateAsync", new Dictionary <string, string> {
                { "entry", entry?.ToJson() }
            });

            // Action
            if (ModelState.IsValid)
            {
                try
                {
                    var dto = await ChatService.CreateAsync(entry);

                    return(CreatedAtAction(nameof(GetAsync), dto));
                }
                catch (Exception ex)
                {
                    return(StatusCode(500, new
                    {
                        Error = ex.Message
                    }));
                }
            }
            else
            {
                return(BadRequest(ModelState));
            }
        }
예제 #2
0
        public async Task <ChatEntryDto> CreateAsync(CreateChatEntryDto entry)
        {
            var entityToCreate = new ChatEntryEntity
            {
                PartitionKey = "ChatApp-OnlyRoom",
                RowKey       = $"{entry.Username}|{DateTime.Now.ToFileTime()}",
                Username     = entry.Username,
                Message      = entry.Message
            };
            var createdEntity = await ChatEntryRepository.InsertOrMergeAsync(entityToCreate);

            var updatedEntity = await ChatEntryRepository.ReadOneAsync(createdEntity.PartitionKey, createdEntity.RowKey);

            return(new ChatEntryDto
            {
                Username = updatedEntity.Username,
                Message = updatedEntity.Message,
                CreatedDate = updatedEntity.Timestamp.DateTime
            });
        }