public static async Task <string> SignIn( [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = null)] HttpRequestMessage request, [Table("UsersTable")] CloudTable usersTable) { OperationResult operationResult = new OperationResult(); UserRequest userRequest = await Utilities.ExtractContent <UserRequest>(request); TableQuery <UsersTable> query = new TableQuery <UsersTable>().Where(TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, userRequest.userId)); var usersQueryResult = await usersTable.ExecuteQuerySegmentedAsync(query, null); if (!usersQueryResult.Results.Any()) { operationResult.UpdateFailure(ErrorMessages.userNotExist); } else { var user = usersQueryResult.Results.First(); if (user.UserPassword == userRequest.userPassword) { List <string> Info; switch (user.UserType) { case ProjectConsts.ParentType: Info = user.ChildrenIds.Split(ProjectConsts.delimiter).ToList(); break; case ProjectConsts.TeacherType: Info = UsersTableUtilities.GetSubjectsTableNamesForTeacher(user); break; default: Info = UsersTableUtilities.GetSubjectsTableNamesForStudent(user); break; } operationResult.UpdateData(new { userName = user.RowKey, userType = user.UserType, Info }); } else { operationResult.UpdateFailure(ErrorMessages.wrongPassword); } } return(JsonConvert.SerializeObject(operationResult)); }