using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Data.Entity; using Weee.Models; using Microsoft.AspNet.Identity.EntityFramework; using Microsoft.AspNet.Identity; using Weee.DAL; using PagedList; using Weee.ViewModels; using Resources; using CScommon; using System.Net; namespace Weee.Areas.Certification.Controllers { [Authorize(Roles = ProgramConstants.certification)] public class HomeController : CertificationControllerBase { //private WeeeDataContext _db; private int? currentcompanyid; public HomeController(WeeeDataContext db) : base(db) { //this._db = db; } // GET: /Consultant/Home/ public ActionResult Index() { //Start CFT-30 //var verifyLCAs = _db.LCAs // .Where(x => x.Status == LCAStatus.Waiting // && x.VerifierCompanyID == currentcompanyid) // .OrderByDescending(x => x.ID) // .ToList(); var verifyLCAs = GetVerifyLCADataList((int)currentcompanyid, LCAStatus.Waiting); //End CFT-30 //var verifyLCAs = (from a in _db.LCAs // join b in _db.ProductLCAs on a.ID equals b.ID into ab // from c in ab.DefaultIfEmpty() // join d in _db.Products on c.ProductID equals d.ID into cd // from e in cd.DefaultIfEmpty() // where a.Status == LCAStatus.Waiting // && a.VerifierCompanyID == currentcompanyid // select new CertificationViewModel // { // ID = a.ID, // LCAname = a.LCAname, // StartDate = a.StartDate, // EndDate = a.EndDate, // LCATypeName = (c == null) ? Resource.StaticLabelOrganizationLCA // : Resource.StaticLabelProductLCA, // Description = a.Description, // CreatedDate = a.CreatedDate, // LCAitemName = e.Name // }) // .OrderByDescending(x => x.ID) // .ToList(); return View(verifyLCAs); } public ActionResult All(int page = 1, string searchString = "") { var query = db.LCAs .Where(x => x.VerifierCompanyID == currentcompanyid) //.Where(x => x.Status != LCAStatus.Waiting || x.Status != LCAStatus.New); ; if (searchString != "") query = query.Where(x => x.Description.Contains(searchString)); var LCAs = query.OrderByDescending(x => x.ID).ToPagedList(page, 20); var onePage = LCAs; ViewBag.SearchString = searchString; return View(LCAs); } public ActionResult LCAStatusNew() { //Start CFT-30 //var verifyLCAs = _db.LCAs // .Where(x => x.Status == LCAStatus.New // && x.VerifierCompanyID == currentcompanyid) // .OrderByDescending(x => x.ID) // .ToList(); var verifyLCAs = GetVerifyLCADataList((int)currentcompanyid, LCAStatus.New); //End CFT-30 return View(verifyLCAs); } public ActionResult LCAStatusProcessing() { //Start CFT-30 //var verifyLCAs = _db.LCAs // .Where(x => x.Status == LCAStatus.Processing // && x.VerifierCompanyID == currentcompanyid) // .OrderByDescending(x => x.ID) // .ToList(); var verifyLCAs = GetVerifyLCADataList((int)currentcompanyid, LCAStatus.Processing); //End CFT-30 return View(verifyLCAs); } public ActionResult LCAStatusRejected() { //Start CFT-30 //var verifyLCAs = _db.LCAs // .Where(x => x.Status == LCAStatus.Rejected // && x.VerifierCompanyID == currentcompanyid) // .OrderByDescending(x => x.ID) // .ToList(); var verifyLCAs = GetVerifyLCADataList((int)currentcompanyid, LCAStatus.Rejected); //End CFT-30 return View(verifyLCAs); } public ActionResult LCAStatusConfirmed() { //Start CFT-30 //var verifyLCAs = _db.LCAs // .Where(x => x.Status == LCAStatus.Confirmed // && x.VerifierCompanyID == currentcompanyid) // .OrderByDescending(x => x.ID) // .ToList(); var verifyLCAs = GetVerifyLCADataList((int)currentcompanyid, LCAStatus.Confirmed); //End CFT-30 return View(verifyLCAs); } public ActionResult LCAStatusCompleted() { //Start CFT-30 //var verifyLCAs = _db.LCAs // .Where(x => x.Status == LCAStatus.Completed // && x.VerifierCompanyID == currentcompanyid) // .OrderByDescending(x => x.ID) // .ToList(); var verifyLCAs = GetVerifyLCADataList((int)currentcompanyid, LCAStatus.Completed); //End CFT-30 return View(verifyLCAs); } protected override void OnActionExecuting(ActionExecutingContext filterContext) { var loggedInUserId = User.Identity.GetUserId(); currentcompanyid = db.Users.AsNoTracking().First(x => x.Id == loggedInUserId).CompanyID; base.OnActionExecuting(filterContext); } //CFT-30 public List GetVerifyLCADataList( int companyID, LCAStatus status) { var verifyLCAs = (from a in db.LCAs join b in db.ProductLCAs on a.ID equals b.ID into ab from c in ab.DefaultIfEmpty() join d in db.Products on c.ProductID equals d.ID into cd from e in cd.DefaultIfEmpty() where a.Status == status && a.VerifierCompanyID == companyID select new CertificationViewModel { ID = a.ID, LCAname = a.LCAname, StartDate = a.StartDate, EndDate = a.EndDate, LCATypeName = (c == null) ? Resource.StaticLabelOrganizationLCA : Resource.StaticLabelProductLCA, Description = a.Description, CreatedDate = a.CreatedDate, LCAitemName = e.Name }) .OrderByDescending(x => x.ID) .ToList(); return verifyLCAs; } public ActionResult UploadFileFA(int updType) { if (Request == null) return new HttpStatusCodeResult(HttpStatusCode.BadRequest); HttpPostedFileBase file = Request.Files["UploadedFile"]; try { if (file.ContentLength == 0) { TempData["ErrMsg"] = "未選擇檔案"; return RedirectToAction("Index"); } if (file != null) { var userNm = User.Identity.GetUserName(); string newFileName = ""; if (updType == 1) newFileName = ProgramConstants.OrganizationLCAApplicationFile; else if (updType == 2) newFileName = ProgramConstants.ProductLCAApplicationFile; string extesion = file.FileName.Substring(file.FileName.LastIndexOf(".") + 1); if (extesion.ToLower() != "zip") { TempData["ErrMsg"] = "僅支持zip類型"; return RedirectToAction("Index"); } var storage = System.Web.Http.GlobalConfiguration.Configuration.DependencyResolver.GetService(typeof(Storage.AzureStorage)) as Storage.AzureStorage; var uri = storage.SaveToAzure(file.InputStream, file.FileName, baseUrl, userNm, false , newFileName); TempData["SuccessMsg"] = "[" + newFileName + "]上傳成功"; return RedirectToAction("Index"); } else { TempData["ErrMsg"] = "上傳失敗"; return RedirectToAction("Index"); } } catch (Exception ex) { TempData["ErrMsg"] = ex.Message; return RedirectToAction("Index"); } } } }