Пример #1
0
 public async Task <ActionResult <ChatMessage> > PutReadStatus(Guid chatMessageID, [FromBody] ApiMessageReadModel message)
 {
     /*
      * Message logicMessage = await repository.GetMessageByIDAsync(chatMessageID);
      * BaseClient checkerClient = await repository.GetBasicClientInformationByEmail(User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Email).Value);
      *
      * if (checkerClient.isAdmin || logicMessage.recieverClient.clientId == checkerClient.clientID)
      * {
      *  try
      *  {
      *      Message targetMessage = await repository.GetMessageByIDAsync(chatMessageID);
      *      targetMessage.isMessageRead = message.isMessageRead;
      *
      *      await repository.UpdateMessageByIDAsync(targetMessage);
      *      await repository.SaveAsync();
      *      Message modifiedLogicMessage = await repository.GetMessageByIDAsync(chatMessageID);
      *      await yuleLogger.logModifiedMessageReadStatus(checkerClient, modifiedLogicMessage);
      *      return Ok(modifiedLogicMessage);
      *  }
      *  catch (Exception)
      *  {
      *      await yuleLogger.logError(checkerClient, LoggingConstants.MODIFIED_MESSAGE_READ_STATUS_CATEGORY);
      *      return StatusCode(StatusCodes.Status424FailedDependency);
      *  }
      * }
      * else
      * {
      *  return StatusCode(StatusCodes.Status401Unauthorized);
      * }
      */
     return(StatusCode(StatusCodes.Status501NotImplemented));
 }
        public async Task <ActionResult <Logic.Objects.Message> > PutReadStatus(Guid chatMessageID, [FromBody] ApiMessageReadModel message)
        {
            Logic.Objects.Message logicMessage = await repository.GetMessageByIDAsync(chatMessageID);

            BaseClient checkerClient = await repository.GetBasicClientInformationByEmail(User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Email).Value);

            if (checkerClient.isAdmin || logicMessage.recieverClient.clientId == checkerClient.clientID)
            {
                try
                {
                    Logic.Objects.Message targetMessage = await repository.GetMessageByIDAsync(chatMessageID);

                    targetMessage.isMessageRead = message.isMessageRead;

                    await repository.UpdateMessageByIDAsync(targetMessage);

                    await repository.SaveAsync();

                    Logic.Objects.Message modifiedLogicMessage = await repository.GetMessageByIDAsync(chatMessageID);

                    await yuleLogger.logModifiedMessageReadStatus(checkerClient, modifiedLogicMessage);

                    return(Ok(modifiedLogicMessage));
                }
                catch (Exception)
                {
                    await yuleLogger.logError(checkerClient, LoggingConstants.MODIFIED_MESSAGE_READ_STATUS_CATEGORY);

                    return(StatusCode(StatusCodes.Status424FailedDependency));
                }
            }
            else
            {
                return(StatusCode(StatusCodes.Status401Unauthorized));
            }
        }