объединение ответа от 1-го вызова с использованием flatMap во 2-й вызов приводит к ошибке [неподдерживаемый статус типа носителя 415] - - PullRequest
0 голосов
/ 24 сентября 2018

В моем приложении я делаю запрос http.post и возвращаю значение 'gradeS'.Теперь я хотел использовать это значение gradeS в качестве параметра, чтобы сделать еще один каскадный вызов и получить некоторый список имен.Я выложу код, который я написал до сих пор -

 1. my first call [originally]

            this.http.post('api/SampleData/CustomerGradeByID', JSON.stringify(body), { headers: _Headers })
            .subscribe((result: any) =>
            {
                this.gradeS = result.json() as any[]
            },
            (error: any)=>console.error(error))


 2. my service function

    export class CommListService {
    endPoint: string;

    constructor(private http: Http) {
        this.endPoint = "/api/SampleData/MakeCommunicationList";
    }

    GetfacilityNames(grade: string): Observable<Communication[]> {
        var body = grade;

        var _Headers = new Headers();
        _Headers.append('Content-Type', 'application/json');

        var commList = this.http.post(this.endPoint, JSON.stringify(body))
            .map((r: Response) => {
                return (r.json().length != 0 ? r.json() : [{"facility_name": "No Record Found" }]) as Communication[]
            });
        return commList;
    }
}

 3. my model class

    export interface ICommunication {
        facility_name: string;
    }

    export class Communication implements ICommunication {
        facility_name: string;
    }

 4. how I tried to merge

 this.http.post('api/SampleData/CustomerGradeByID', JSON.stringify(body), { headers: _Headers })
        .do(u => this.gradeS = u)
        .flatMap(u => this.commu.GetfacilityNames(this.gradeS))
        .subscribe(p => this.comms = p);


 5. finally in my html 

     <ul>
         <li *ngFor="let cm of comms">{{cm.facility_name}}</li>
     </ul>

ТАК, где я ошибся?Я получаю данные из базы данных.Запустив хранимую процедуру.Что со статусом 415?Что это значит в этом контексте?Может ли быть что-то не так в коде C # на стороне сервера?У меня есть предчувствие, что я мог написать что-то не так на стороне сервера, например, на C # и MSSQL.Хотя я не уверен.

это мой код C #

public JsonResult MakeCommunicationList([FromBody]string grade)
        {
            var gId = _appDbContext.CustomerGrades.First(m => m.grade_name == grade);
            try
            {
                var inpParam = new SqlParameter("gId", SqlDbType.BigInt) { Direction = ParameterDirection.Input };

                var salesData = (_appDbContext.Database.ExecuteSqlCommand($"EXEC {"sp_GetCommunicationList"} @gId", inpParam));
                return Json(salesData);
            }
            catch (Exception exp)
            {
                return Json(exp.GetBaseException());
            }
        }

, а это мой SP

CREATE procedure [dbo].[sp_GetCommunicationList]

@gId bigint

as
begin

begin try

    if exists (
            Select * from tempdb..sysobjects Where id = object_id('tempdb.dbo.#temp')
          )
        DROP TABLE #temp

else
        select facility_name
        into #temp 
        from Facilities ff
        join
        GradeFacilities gf
        on
        gf.facility_id=ff.Id
        where
        grade_id=@gId

--      select * into #temp from Orders where customer_id=@customer_id
end try

begin catch
    select error_message(),
           error_severity(),
           error_number(),
           error_state()
end catch

end

Пожалуйста, помогите !!Я не могу понять это!

...