/// <summary>
        /// Unmarshaller the response from the service to the response class.
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public override AmazonWebServiceResponse Unmarshall(JsonUnmarshallerContext context)
        {
            UpdateGroupResponse response = new UpdateGroupResponse();

            context.Read();
            int targetDepth = context.CurrentDepth;

            while (context.ReadAtDepth(targetDepth))
            {
                if (context.TestExpression("Group", targetDepth))
                {
                    var unmarshaller = GroupUnmarshaller.Instance;
                    response.Group = unmarshaller.Unmarshall(context);
                    continue;
                }
                if (context.TestExpression("RequestId", targetDepth))
                {
                    var unmarshaller = StringUnmarshaller.Instance;
                    response.RequestId = unmarshaller.Unmarshall(context);
                    continue;
                }
            }
            response.Status = (int)context.ResponseData.StatusCode;

            return(response);
        }
Beispiel #2
0
        public override AmazonWebServiceResponse Unmarshall(XmlUnmarshallerContext context)
        {
            UpdateGroupResponse response = new UpdateGroupResponse();

            context.Read();
            int targetDepth = context.CurrentDepth;

            while (context.ReadAtDepth(targetDepth))
            {
                if (context.IsStartElement)
                {
                    if (context.TestExpression("UpdateGroupResult", 2))
                    {
                        UnmarshallResult(context, response);
                        continue;
                    }

                    if (context.TestExpression("ResponseMetadata", 2))
                    {
                        response.ResponseMetadata = ResponseMetadataUnmarshaller.Instance.Unmarshall(context);
                    }
                }
            }

            return(response);
        }
        /// <summary>
        /// Unmarshaller the response from the service to the response class.
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public override AmazonWebServiceResponse Unmarshall(JsonUnmarshallerContext context)
        {
            UpdateGroupResponse response = new UpdateGroupResponse();


            return(response);
        }
Beispiel #4
0
        public async override Task <UpdateGroupResponse> UpdateGroup(UpdateGroupRequest request, ServerCallContext context)
        {
            try
            {
                var result = new UpdateGroupResponse {
                    Success = true
                };
                var valid = GroupValidate(request.Group);
                if (!valid.success)
                {
                    result.Success = false;
                    result.Message = valid.message;
                    return(result);
                }

                var userIdentifier = GetUserIdentifier(context);
                var user           = await _groupStore.GetUser(userIdentifier);

                if (user != null)
                {
                    var userGroup = await _groupStore.GetUserGroup(user.Id, request.Group.Id);

                    if (userGroup != null)
                    {
                        userGroup.GroupLabel = request.Group.Label;
                        userGroup.UserName   = request.Group.UserName;
                        if (userGroup.UserRole == UserRole.Owner)
                        {
                            userGroup.Group.Password = request.Group.Password;
                        }
                        userGroup.UserIcon = request.Group.UserIcon;
                        await _groupStore.SaveChanges();
                    }
                    else
                    {
                        result.Success = false;
                        result.Message = "User is not connected to group";
                    }
                }
                else
                {
                    result.Success = false;
                    result.Message = "User does not exist";
                }

                return(result);
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, ex.Message);
                return(new UpdateGroupResponse
                {
                    Success = false,
                    Message = ex.Message
                });
            }
        }
Beispiel #5
0
        public static UpdateGroupResponse Unmarshall(UnmarshallerContext context)
        {
            UpdateGroupResponse updateGroupResponse = new UpdateGroupResponse();

            updateGroupResponse.HttpResponse = context.HttpResponse;
            updateGroupResponse.RequestId    = context.StringValue("UpdateGroup.RequestId");

            UpdateGroupResponse.UpdateGroup_Group group = new UpdateGroupResponse.UpdateGroup_Group();
            group.GroupName           = context.StringValue("UpdateGroup.Group.GroupName");
            group.Comments            = context.StringValue("UpdateGroup.Group.Comments");
            group.CreateDate          = context.StringValue("UpdateGroup.Group.CreateDate");
            group.UpdateDate          = context.StringValue("UpdateGroup.Group.UpdateDate");
            updateGroupResponse.Group = group;

            return(updateGroupResponse);
        }
        public override AmazonWebServiceResponse Unmarshall(XmlUnmarshallerContext context)
        {
            UpdateGroupResponse response = new UpdateGroupResponse();

            while (context.Read())
            {
                if (context.IsStartElement)
                {
                    if (context.TestExpression("ResponseMetadata", 2))
                    {
                        response.ResponseMetadata = ResponseMetadataUnmarshaller.GetInstance().Unmarshall(context);
                    }
                }
            }


            return(response);
        }
Beispiel #7
0
        public async Task UpdateGroup(UpdateGroupRequest request)
        {
            try
            {
                var result = await _chatService.UpdateGroup(Context.UserIdentifier, request.Group, request.Name, request.Users);

                ChatResponse response = new ChatResponse();
                if (result.Success)
                {
                    UpdateGroupResponse updateGroupResponse = (UpdateGroupResponse)result.Data;
                    response.Type = ChatResponseType.UpdateGroupView;
                    response.Data = updateGroupResponse.Group;
                    await SendResponseToGroup(request.Group, response);


                    response      = new ChatResponse();
                    response.Type = ChatResponseType.UpdateGroup;
                    response.Data = updateGroupResponse.Group;
                    foreach (string user in updateGroupResponse.AddedUsers)
                    {
                        await SendResponseToUser(user, response);
                        await GroupUserConnection(request.Group, user, true);
                    }

                    response      = new ChatResponse();
                    response.Type = ChatResponseType.DeleteGroup;
                    response.Data = request.Group;
                    foreach (string user in updateGroupResponse.DeletedUsers)
                    {
                        await SendResponseToUser(user, response);
                        await GroupUserConnection(request.Group, user, false);
                    }
                }
                else
                {
                    response.Type = ChatResponseType.SystemErrorMessage;
                    response.Data = result.Message;
                    await SendResponseToCaller(response);
                }
            }
            catch (Exception)
            {
            }
        }
Beispiel #8
0
        private static void UnmarshallResult(XmlUnmarshallerContext context, UpdateGroupResponse response)
        {
            int originalDepth = context.CurrentDepth;
            int targetDepth   = originalDepth + 1;

            if (context.IsStartOfDocument)
            {
                targetDepth += 2;
            }

            while (context.ReadAtDepth(originalDepth))
            {
                if (context.IsStartElement || context.IsAttribute)
                {
                }
            }

            return;
        }
Beispiel #9
0
        public UpdateGroupResponse Update(UpdateGroupRequest request)
        {
            var response = new UpdateGroupResponse();

            try
            {
                var group = request.MapTo <Group>();
                DataContext.Groups.Attach(group);
                DataContext.Entry(group).State = EntityState.Modified;
                DataContext.SaveChanges();
                response.IsSuccess = true;
                response.Message   = "Group item has been updated successfully";
            }
            catch (DbUpdateException dbUpdateException)
            {
                response.IsSuccess = false;
                response.Message   = dbUpdateException.Message;
            }
            return(response);
        }
Beispiel #10
0
 public UpdateGroupResponse Update(UpdateGroupRequest request)
 {
     var response = new UpdateGroupResponse();
     try
     {
         var group = request.MapTo<Group>();
         DataContext.Groups.Attach(group);
         DataContext.Entry(group).State = EntityState.Modified;
         DataContext.SaveChanges();
         response.IsSuccess = true;
         response.Message = "Group item has been updated successfully";
     }
     catch (DbUpdateException dbUpdateException)
     {
         response.IsSuccess = false;
         response.Message = dbUpdateException.Message;
     }
     return response;
 }