Задать вопрос
  • Как дождаться выполнения http запроса с angularjs?

    @Turtle_Onni Автор вопроса
    Здравствуйте!
    У меня новая проблема. У меня есть репозиторий в котором имеются все $http запросы.
    из скрипта:
    prstageRepository.deleteStageLink(id).then(function(){
    ...
    })

    репозиторий:
    factory.deleteStageLink = function (linkId) {
               var deferred = $q.defer();
               $http.delete(pathApiProjectStageLinks + '/' + linkId).success(function () {
                   notifications.add('success', 'Связь удалена!');
                   console.log("delete!");
               }).error(function () {
                   notifications.add('danger', 'Связь не удалена!');
               });
               return deferred.promise;
           };

    Далее у меня по скрипту идут другие функции и выражения. При выполнении скрипта происходит следующий ход выполнения: читается строку с нужной функцией из репозитория, но ответа не получаем, просто заходит затем попадаем обратно в наш скрипт и выполняем его до конца, и только затем выполняет $http запрос. Как сделать чтобы скрипт продолжал только после того как придет ответ с сервера? Вариант включения в функцию then() мне не всегда подходит.
    Спасибо.
  • Как построить дерево с большим количеством разветвлений?

    @Turtle_Onni Автор вопроса
    Я понимаю что рекурсия, только как на js переместить указатель на следующий уровень?
    Как мне добавить детей уже ко второму элементу?
  • Почему не сохраняет файл на сервер?

    @Turtle_Onni Автор вопроса
    Роман:
    Да, пришлось немного его модифицировать.
    var server = HttpContext.Current.Server;
                var httpRequest = HttpContext.Current.Request;
                string root = server.MapPath("~/Data/Storage/Документы");
                CustomMultipartFormDataStreamProvider provider = new CustomMultipartFormDataStreamProvider(root);
                
                var resultData = await Request.Content.ReadAsMultipartAsync(provider);
                
                var data = resultData.FormData["data"];
                var filesUpload = resultData.FileData;
                
                HttpResponseMessage result = null;
                
                // проверка существует ли папка Документы
                if (!Directory.Exists(root))
                    {
                        Directory.CreateDirectory(root);
                    }
    
                    
                    if (data == null)
                    {
                        throw new HttpResponseException(HttpStatusCode.BadRequest);
                    }
    
                    DocInfo docInfo = JsonConvert.DeserializeObject<DocInfo>(data);
                    var projectFolder = docInfo.projectFolder;
                
                    if (filesUpload.Count > 0)
                    {
                        var docfiles = new List<string>();
                        foreach (var file in filesUpload)
                        {
                            // проверка существует ли папка проекта 
                            if (!Directory.Exists(root + "\\" + projectFolder))
                            {
                                Directory.CreateDirectory(root + "\\" + projectFolder);
                            }
                            if (!Directory.Exists(root + "\\" + projectFolder + "\\" + docInfo.TypeFolder))
                            {
                                Directory.CreateDirectory(root + "\\" + projectFolder + "\\" + docInfo.TypeFolder);
                            }
    
                            string date = DateTime.Now.ToString("dd-MM-yyyy HH-mm-ss");
                            string oldFileName = file.Headers.ContentDisposition.FileName.Replace("\"", string.Empty); 
                            string fileFormat = Path.GetExtension(root + "\\" + oldFileName);
    
                            string pathNew = "";
                            string pathOld = "\\" + oldFileName;
                        
                            ProjectDoc doc = new ProjectDoc();
                            doc.ProjectId = docInfo.ProjectId;
                            if (docInfo.Name != "" && docInfo.Name != null && docInfo.Name != " ")
                            {
                                doc.Name = docInfo.Type + "_" + docInfo.Name + "_" + date;
                                pathNew = "\\" + docInfo.projectFolder + "\\" + docInfo.TypeFolder + "\\" + docInfo.Type +
                                          "_" +
                                          docInfo.Name + "_" + date + fileFormat;
                            }
                            else
                            {
                                doc.Name = docInfo.Type + "_" + date;
                                pathNew = "\\" + docInfo.projectFolder + "\\" + docInfo.TypeFolder + "\\" + docInfo.Type +
                                          "_" +
                                          docInfo.Name + "_" + date + fileFormat;
                            }
    
                            doc.Format = fileFormat;
                            doc.Path = pathNew;
                            doc.Type = docInfo.Type;
                            doc.TypeFolder = docInfo.TypeFolder;
                            doc.DateCreate = DateTime.Now;
    
                            db.ProjectDocs.Add(doc);
                            db.SaveChanges();
                            string filePathOld = root + pathOld;
                            string filePathNew = root + pathNew;
    
                            docfiles.Add(filePathNew);
    
                            File.Copy(filePathOld, filePathNew);
                            File.Delete(root + "\\" + oldFileName);
    
                        }
                        result = Request.CreateResponse(HttpStatusCode.Created, docfiles);
                    }
                    else
                    {
                        result = Request.CreateResponse(HttpStatusCode.BadRequest);
                    }
                            return result;
  • Почему не сохраняет файл на сервер?

    @Turtle_Onni Автор вопроса
    Роман:
    Я нашла в чем проблема. Ошибка в самом коде. С правами все хорошо. Спасибо Вам за помощь, много нового узнала!
  • Почему не сохраняет файл на сервер?

    @Turtle_Onni Автор вопроса
    string root = AppDomain.CurrentDomain.BaseDirectory + "Data\\Storage\\Документы";
                HttpResponseMessage result = null;
                
                    // проверка существует ли папка Документы
                    if (!Directory.Exists(root))
                    {
                        Directory.CreateDirectory(root);
                    }
    
                    CustomMultipartFormDataStreamProvider provider = new CustomMultipartFormDataStreamProvider(root);
                    var resultData = await Request.Content.ReadAsMultipartAsync(provider);
                    var data = resultData.FormData["data"];
                    if (data == null)
                    {
                        throw new HttpResponseException(HttpStatusCode.BadRequest);
                    }
    
                    DocInfo docInfo = JsonConvert.DeserializeObject<DocInfo>(data);
                    var projectFolder = docInfo.projectFolder;
    
                    
                    var httpRequest = HttpContext.Current.Request;
    
                    if (httpRequest.Files.Count > 0)
                    {
                        var docfiles = new List<string>();
                        foreach (string file in httpRequest.Files)
                        {
                            // проверка существует ли папка проекта 
                            if (!Directory.Exists(root + "\\" + projectFolder))
                            {
                                Directory.CreateDirectory(root + "\\" + projectFolder);
                            }
                            if (!Directory.Exists(root + "\\" + projectFolder + "\\" + docInfo.TypeFolder))
                            {
                                Directory.CreateDirectory(root + "\\" + projectFolder + "\\" + docInfo.TypeFolder);
                            }
    
                            var postedFile = httpRequest.Files[file];
    
                            string date = DateTime.Now.ToString("dd-MM-yyyy HH-mm-ss");
    
                            string fileFormat =
                                Path.GetExtension(root + "\\" + docInfo.projectFolder + "\\" + docInfo.TypeFolder + "\\" +
                                                  postedFile.FileName);
    
                            string pathNew = "";
                            string pathOld = "\\" + docInfo.projectFolder + "\\" + docInfo.TypeFolder + "\\" +
                                             postedFile.FileName;
    
    
                            //var filePath = File.Create("E:\\Storage" + "\\Test\\" + postedFile.FileName);
    
                            ProjectDoc doc = new ProjectDoc();
                            doc.ProjectId = docInfo.ProjectId;
                            if (docInfo.Name != "" && docInfo.Name != null && docInfo.Name != " ")
                            {
                                doc.Name = docInfo.Type + "_" + docInfo.Name + "_" + date;
                                pathNew = "\\" + docInfo.projectFolder + "\\" + docInfo.TypeFolder + "\\" + docInfo.Type +
                                          "_" +
                                          docInfo.Name + "_" + date + fileFormat;
                            }
                            else
                            {
                                doc.Name = docInfo.Type + "_" + date;
                                pathNew = "\\" + docInfo.projectFolder + "\\" + docInfo.TypeFolder + "\\" + docInfo.Type +
                                          "_" +
                                          docInfo.Name + "_" + date + fileFormat;
                            }
    
                            doc.Format = fileFormat;
                            doc.Path = pathNew;
                            doc.Type = docInfo.Type;
                            doc.TypeFolder = docInfo.TypeFolder;
                            doc.DateCreate = DateTime.Now;
    
                            db.ProjectDocs.Add(doc);
                            db.SaveChanges();
    
                            string filePathOld = root + pathOld;
                            string filePathNew = root + pathNew;
    
                            docfiles.Add(filePathNew);
                            postedFile.SaveAs(filePathOld);
                            File.Move(filePathOld, filePathNew);
                            File.Delete(root + "\\" + postedFile.FileName);
                        }
                        result = Request.CreateResponse(HttpStatusCode.Created, docfiles);
                    }
                    else
                    {
                        result = Request.CreateResponse(HttpStatusCode.BadRequest);
                    }
                }
                return result;
  • Почему не сохраняет файл на сервер?

    @Turtle_Onni Автор вопроса
    Здравствуйте!
    Путем небольших манипуляций выяснилось что если напрямую загружать файл на сервер, то все работает. Но в моей логике идет создание специальной папки-загрузка файла-изменение имени файла- сохранение файла в спец папку. Видимо тут то и выпадают ошибки... Дело наверно опять в правах, приложение не может манипулировать папками? Насколько мне помниться то файл в начале сохраняется в самую корневую папку. затем создается специальная папку тут и только потом файл переименуется и затем сохраняется в папку.
  • Почему не сохраняет файл на сервер?

    @Turtle_Onni Автор вопроса
    Ошибку которую я вижу это 500. Ошибка вылазит на боевом сервере. Подскажите как более развернуто получить в чем проблема от сервер?
  • Почему не сохраняет файл на сервер?

    @Turtle_Onni Автор вопроса
    спасибо за ответ!
    но у меня не получается так сделать. Можете проверить?
    У папки добавлен пользователь от которого запущено приложение. У него стоит полный доступ. НО у папки стоит галочка только чтение и даже если ее убрать, она обратно возвращается. Даже если в IIS заходить через "редактировать разрешение" и добавить пользователя, все равно выдает ошибку 500.
  • Откуда вдруг ошибки?

    @Turtle_Onni Автор вопроса
    спасибо!
  • Откуда вдруг ошибки?

    @Turtle_Onni Автор вопроса
    "отключил оптимизацию бандлов (соединение в один скрипт)" - так и сделала. Если это убрать то уменьшится скорость загрузки сайта?
  • Как правильно выложить приложение asp.net на сервер?

    @Turtle_Onni Автор вопроса
    Дмитрий, разобралась! Спасибо большое за помощь!

    Добавить не получалось потому что имя пользователя было не правильное.
  • Как правильно выложить приложение asp.net на сервер?

    @Turtle_Onni Автор вопроса
    Дмитрий Ковальский:
    подскажите как дать права к SQL Server пользователю пула IIS? У меня выпадает ошибка:

    Действие Создать завершилось неудачно для объекта "Имя входа" .....
    (Microsoft SQL Server, ошибка: 15401)....
  • Как правильно выложить приложение asp.net на сервер?

    @Turtle_Onni Автор вопроса
    Спасибо что откликнулись!
    1,2,4 - пункты выполнены. 3 - тут проблемы. Возможно я что-то делаю не так. Не могу понять какого пользователя надо добавить и как.
    Правильно понимаю: есть пользователь asp.net, который должен иметь доступ к БД. Но у меня в БД "безопасность-имена входа" нет такого пользователя.
  • Как упорядочить данные по дате?

    @Turtle_Onni Автор вопроса
    filter - о них знаю, а как работать, сравнивать даты?
  • Как настроить формат передаваемой даты в AngularJS?

    @Turtle_Onni
    Здравствуйте! У меня такой близкий вопрос. Что в вашем понимании правильно написанная? Я использую стандартную директиву ui-bootstrap. Дата определяется с timezone. и на сервер приходит неверная дата, с разницей timezone. Можете помочь?
  • Angular и webApi как отправить файл вместе с объектом?

    @Turtle_Onni Автор вопроса
    Я наверно немного неправильно акцентировала внимание. Меня больше интересует часть кода на c#.
    Этим я пользуюсь уже.
  • Не подгружаются стили и скрипты на хостинге, почему?

    @Turtle_Onni Автор вопроса
    Вопрос решился. В web.config в строчке необходимо было выставить значение false. Но заработало все это только после полного удаления и записи новых файлов, и чистки кэша. Вдруг кому-нибудь пригодится.
  • Не подгружаются стили и скрипты на хостинге, почему?

    @Turtle_Onni Автор вопроса
    Можете поконкретней сказать что именно посмотреть можно? Я не сильно разбираюсь в настройках сборки.
  • Не подгружаются стили и скрипты на хостинге, почему?

    @Turtle_Onni Автор вопроса
    Дополнение: Если прописать на прямую по обычному через link, то подгружает, а если через Render, то на хостинге выдает неверную ссылку.