Jump to content

Os dados em array são enviados, mas quando chega no back-end só o ultimo que é retornado


Air-Gear

Recommended Posts

Olá pessoal!

Eu fiz um código de enviar fotos e salvar os dados dos mesmo, como novo nome e data de envio. A parte Front-End está praticamente pronta, já envia uma ou mais fotos, tem os nomes renomeados e envia os novos nomes juntos com as datas de envio e outros dados. Agora no Back End que preciso de ajuda.

No código Back-End, já chega os campos com os dados preenchidos dentro do array Arq. Na hora de passar na classe clUpload, passa normalmente, mas percebi que passa em cima do anterior e retoma somente o ultimo do array.

Ainda estou iniciando no Back-End em C#, tentei transformar uma classe em array, mas não conseguir.

Alguém pode me ajudar? Segue o código:

public class clUpload
    {
        #region insert
 
        internal static tbUploadSCP novoUpload(objUpload obj)
        {
            tbUploadSCP uploadA = new tbUploadSCP();
 
            using (TransactionScope ts = new TransactionScope())
            {
                using (Repository<tbUploadSCP> repSol = new Repositoryupload())
                {
                    for (int i = 0; i < obj.arq.Count; i++)
                    {
                        uploadA = new tbUploadSCP
                        {
                            url = obj.arq[i].url,
                            userId = obj.arq[i].userId,
                            upIdAcao = obj.arq[i].upIdAcao,
                            upTipo = obj.arq[i].upTipo,
                            upData = obj.arq[i].upData,
                        };
                        repSol.Add(uploadA);
                    }
                }
                ts.Complete();
 
                return uploadA;
            }
        }
}
 
Link to comment
Share on other sites

Repara que estás a fazer um ciclo onde estás a adicionar a variável uploadA à lista repSol mas o que tu retornas não é a lista repSol mas sim a variável uploadA.

Ora, no final do ciclo, a variável uploadA tem exatamente o último elemento.

10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Link to comment
Share on other sites

7 minutos atrás, M6 disse:

Repara que estás a fazer um ciclo onde estás a adicionar a variável uploadA à lista repSol mas o que tu retornas não é a lista repSol mas sim a variável uploadA.

Ora, no final do ciclo, a variável uploadA tem exatamente o último elemento.

Pelo que entendi, para que o uploadA retorne todos os dados da listas eu preciso adicionar o repSol junto. Seria isso?

Link to comment
Share on other sites

O resultado que pretendes está na variável repSol.
Tens de alterar o teu código para que o retorno seja do mesmo tipo da variável repSol (o mesmo se aplica a quem vai receber o resultado da chamada).

10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Link to comment
Share on other sites

Eu fiz essa modificação, acredito que estou no caminho, mas ainda aponta o mesmo erro.

public class clUpload
    {
        #region insert

        internal static Repository <tbUploadSCP> novoUpload(objUpload obj)
        {
            
            using (TransactionScope ts = new TransactionScope())
            {
                using (Repository<tbUploadSCP> repSol = new Repositoryupload())
                {

                    for (int i = 0; i < obj.arq.Count; i++) 
                    {
                        repSol = new tbUploadSCP
                        {
                            url = obj.arq[i].url,
                            userId = obj.arq[i].userId,
                            upIdAcao = obj.arq[i].upIdAcao,
                            upTipo = obj.arq[i].upTipo,
                            upData = obj.arq[i].upData,
                        };

                    }


                }
                ts.Complete();

                return repSol;
            }
        }
}
 
Link to comment
Share on other sites

Repara que agora não estás a adicionar os elementos ao repSol.
Agora estás, por cada elemento da lista obj, a criar um novo repSol com o elemento atual do ciclo. Assim, quando o ciclo termina, o repSol só vai ter o último elemento.

Tens de criar o repSol antes do inicio do cliclo e dentro do ciclo vais adicionando os elementos,

10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.