public async Task <Response> CreateShare(CreateShareRequest request)
        {
            Response retval;

            if (_dal.IsShareExists(_conn, request.Share))
            {
                retval = new CreateShareResponseShareExists(request);
            }
            else if (!_dal.IsDocumentExists(_conn, request.Share.DocID) || !_dal.IsUserExists(_conn, request.Share.UserID))
            {
                retval = new CreateShareResponseInvalidID(request);
            }
            else if (!_dal.IsUserOwner(_conn, request.UserID, request.Share.DocID))
            {
                retval = new CreateShareResponseNotAuthorized(request);
            }
            else
            {
                try
                {
                    _dal.CreateShare(_conn, request.Share);
                    retval = new CreateShareResponseOK(request);
                    await _webSocket.Notify("New share: " + request.Share.ToString());
                }
                catch (Exception ex)
                {
                    retval = new AppResponseError("Error in create share");
                }
            }

            return(retval);
        }
        public async Task <Response> CreateDocument(CreateDocumentRequest request)
        {
            Response retval = new CreateDocumentResponseInvalidData(request);

            if (_dal.IsUserExists(_conn, request.UserID))
            {
                var      id       = Guid.NewGuid().ToString();
                Document document = new Document()
                {
                    DocID    = id, DocumentName = request.DocumentName,
                    ImageURL = request.ImageURL, UserID = request.UserID
                };
                try
                {
                    _dal.CreateDocument(_conn, document);
                    retval = new CreateDocumentResponseOK(request);
                    await _webSocket.Notify("new Document" + id);
                }
                catch (Exception ex)
                {
                    retval = new AppResponseError("Error in create document");
                }
            }
            return(retval);
        }
        public async Task <Response> CreateUser(CreateUserRequest request)
        {
            Response retval = new CreateUserResponseUserIDExist(request);

            if (!_dal.IsUserExists(_conn, request.User.UserID))
            {
                try
                {
                    _dal.CreateUser(_conn, request.User);
                    retval = new CreateUserResponseOK(request);
                }
                catch
                {
                    retval = new AppResponseError("Couldn't create user, due to error in dataBase");
                }
            }

            return(retval);
        }
예제 #4
0
        public async Task <Response> CreateMarker(CreateMarkerRequest request)
        {
            Response retval = new CreateMarkerResponseInvalidDocID(request);

            if (!_dal.IsDocumentExists(_conn, request.DocID))
            {
                retval = new CreateMarkerResponseInvalidDocID(request);
            }
            else if (!_dal.IsUserExists(_conn, request.UserID))
            {
                retval = new CreateMarkerResponseInvalidUserID(request);
            }
            else if (!ValidateMarkerType(request.MarkerType))
            {
                retval = new CreateMarkerResponseInvalidMarkerType(request);
            }
            else
            {
                var    id     = Guid.NewGuid().ToString();
                Marker marker = new Marker()
                {
                    BackColor        = request.BackColor, DocID = request.DocID, ForeColor = request.ForeColor, MarkerID = id
                    , MarkerLocation = request.MarkerLocation,
                    MarkerType       = request.MarkerType, UserID = request.UserID
                };
                try
                {
                    _dal.CreateMarker(_conn, marker);
                    retval = new CreateMarkerResponseOK(request);
                    await _webSocket.SendNewMarker(marker);
                }
                catch (Exception ex)
                {
                    retval = new AppResponseError("Error in create marker");
                }
            }

            return(retval);
        }