public async Task <ActionResult> Create(Models.ServiceModels.NewService Model) { var errorList = new List <string>(); if (ModelState.IsValid) { WoReturn woret = SaveService(Model); if (woret.WoId > 0) { string pagename = woret.HasItems ? "edit" : "AddItem"; string WO_URL = ""; if (Request.QueryString["nav"] == null) { WO_URL = Url.Action(pagename, "workorders", new { area = "common", id = woret.WoId }); } else { WO_URL = Url.Action(pagename, "workorders", new { area = "common", nav = Request.QueryString["nav"], id = woret.WoId }); } return(Json(new { status = "success", WO_URL = WO_URL })); //var ProjectInfo = db.GetProjectInfoByProjectID(projectId).FirstOrDefault(); //var checkdropboxauth = db.CoDropbox.Where(p => p.SiteCoID == siteusercompanyid).FirstOrDefault(); //if (checkdropboxauth != null) //{ // using (var dbx = new DropboxClient(System.Text.Encoding.UTF8.GetString(checkdropboxauth.AccessToken))) // { // var full = await dbx.Users.GetCurrentAccountAsync(); // var list = await dbx.Files.ListFolderAsync(string.Empty); // bool flag = true; // // get folders and sub folders // foreach (var item in list.Entries.Where(i => i.IsFolder)) // { // if (item.Name == ProjectInfo.Project) // flag = false; // } // if (flag == true) // await dbx.Files.CreateFolderAsync("/" + ProjectInfo.Project, true); // } //} //return Json(new { status = "success", serviceid = projectId }); } else { errorList.Add("Service couldn't be saved. Please retry."); } } errorList.AddRange((from item in ModelState.Values from error in item.Errors select error.ErrorMessage).ToList() ); return(Json(new { status = "error", errors = errorList })); }
private WoReturn SaveService(ServiceModels.NewService Model) { int siteCoID = siteusercompanyid; var quote = new ProjectInfo() { ProjectID = Model.ServiceID ?? 0, LinkID = Model.ParentQuoteID, SiteCoID = siteCoID, ProjectName = Model.ServiceName, ProjectNumber = Model.JobNumber ?? "", ProjectStatusID = Model.StatusID, ContactID = Model.ClientID, ProjectAddress1 = Model.Address1, ProjectAddress2 = Model.Address2, ProjectCity = Model.City, ProjectState = Model.State, ProjectCountry = Model.Country, ProjectZip = Model.Zip, ProjectPhone = Model.ServicePhone, ProjectEmail = Model.Email, DateUploaded = DateTime.Now, SalesID = Model.SalesPersonID, ProjectStartDate = Model.StartDate, PmID = Model.ProjectManagerID, DesignerID = Model.DesignerID, ProjectTypeID = 3 }; var projectId = repo.SaveProjectInfo(quote); var woNumber = repo.GetNextWorkOrderNumber(projectId, Model.JobNumber, ""); ProjectItems item = db.ProjectItems.Where(s => s.ProjectID == projectId).FirstOrDefault(); int issaved = 0; bool HasItems = false; if (item == null) { issaved = db.InsertServiceWo(projectId, siteCoID, woNumber, null); } else { issaved = db.InsertServiceWo(projectId, siteCoID, woNumber, item.ItemID); HasItems = true; } int woid = 0; if (issaved > 0) { woid = db.ProjectWorkOrders.Where(s => s.WoNumber == woNumber).OrderByDescending(s => s.WoID).FirstOrDefault() != null?db.ProjectWorkOrders.Where(s => s.WoNumber == woNumber).OrderByDescending(s => s.WoID).FirstOrDefault().WoID : 0; } //db.GetServiceTemplatesBySiteCoID; var ret = new WoReturn { WoId = woid, HasItems = HasItems }; return(ret); }