public async Task <IActionResult> UpdateProtocol(long projectId, [FromBody] ProtocolUpdateDto protocolUpdateDto)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var user = await _unitOfWork.Users.SingleOrDefaultAsync(u => u.Id == protocolUpdateDto.UserId);

            var project = await _unitOfWork.Projects.GetProjectWithProtocol(p => p.Id == projectId);

            if (project.Status != (int)ProjectStatus.Active)
            {
                // project locked no update allowed
                return(Forbid());
            }

            project.Protocol.Text = protocolUpdateDto.Text;
            project.Protocol.UpdateLastEditedDetails(user);
            project.UpdateLastEditedDetails(user);

            if (await _unitOfWork.Complete() <= 0)
            {
                return(StatusCode(304));
            }

            return(Ok());
        }
        public async Task <ActionResult> UpdateProtocol(int id, ProtocolUpdateDto protocolUpdateDto)
        {
            var protocol = await _protocolRepository.GetProtocol(id);

            protocol.ProtocolName = protocolUpdateDto.ProtocolName;
            protocol.ModifiedAt   = protocolUpdateDto.ModifiedAt;

            _protocolRepository.Update(protocol);

            return(NoContent());
        }