コード例 #1
0
        public ActionResult SalesOrderLine_Delete([DataSourceRequest] DataSourceRequest request, salesOrderLineModel modelSalesOrderLine)
        {
            var iResult = new List <salesOrderLineModel>();

            if (!ModelState.IsValid)
            {
                iResult.Add(modelSalesOrderLine);
            }
            else
            {
                try
                {
                    var iUri        = new Uri(ODataWebService.BuildODataUrl());
                    var iWebService = new NAV(iUri)
                    {
                        Credentials = ODataWebService.CreateCredentials(iUri.ToString())
                    };
                    var salesOrderLine = (from lsalesOrderLine in iWebService.salesOrderLines where lsalesOrderLine.id == modelSalesOrderLine.id select lsalesOrderLine).FirstOrDefault();

                    if (salesOrderLine != null)
                    {
                        iWebService.DeleteObject(salesOrderLine);
                        iWebService.SaveChanges();
                    }
                }
                catch (DataServiceRequestException ex)
                {
                    ModelState.AddModelError("", ex.Message);
                    iResult.Add(modelSalesOrderLine);
                }
            }

            return(Json(iResult.ToDataSourceResult(request, ModelState)));
        }
コード例 #2
0
        public ActionResult SalesOrderLines_Read([DataSourceRequest] DataSourceRequest request, Guid documentId)
        {
            var salesOrderLinesModel = new List <salesOrderLineModel>();

            try
            {
                var iUri        = new Uri(ODataWebService.BuildODataUrl());
                var iWebService = new NAV(iUri)
                {
                    Credentials = ODataWebService.CreateCredentials(iUri.ToString())
                };
                var salesOrderLines = (from lsalesOrderLine in iWebService.salesOrderLines where lsalesOrderLine.documentId == documentId orderby lsalesOrderLine.sequence select lsalesOrderLine);

                foreach (salesOrderLine lsalesOrderLine in salesOrderLines)
                {
                    salesOrderLinesModel.Add(new salesOrderLineModel(lsalesOrderLine));
                }
            }
            catch (DataServiceRequestException ex)
            {
                ModelState.AddModelError("", ex.Message);
            }

            return(Json(salesOrderLinesModel.ToDataSourceResult(request, ModelState)));
        }
コード例 #3
0
        public IQueryable <salesOrder> GetSalesOrders(ODataQueryOptions queryOptions)
        {
            IQueryable <salesOrder> iQuery = null;
            Uri iUri        = new Uri(ODataWebService.BuildODataUrl());
            NAV iWebService = new NAV(iUri)
            {
                Credentials = ODataWebService.CreateCredentials(iUri.ToString())
            };

            try
            {
                //var iCustomerId = ClaimsPrincipal.Current.Claims.Where(w => w.Type == "extension_CustomerId").Select(s => s.Value).FirstOrDefault();

                //iQuery = from salesOrder in iWebService.salesOrders
                //                                 where salesOrder.customerId == new Guid(iCustomerId)
                //                                 select salesOrder;

                iQuery = (IQueryable <salesOrder>)queryOptions.ApplyTo(iWebService.salesOrders);
            }

            catch (Exception ex)
            {
                // return ex;
            }

            return(iQuery);
        }
コード例 #4
0
        public JsonResult GetCustomers(string CompanyId = "")
        {
            if (CompanyId == "")
            {
                CompanyId = ClaimsPrincipal.Current.Claims.Where(w => w.Type == "extension_CompanyId").Select(s => s.Value).FirstOrDefault();
            }

            Uri iUri        = string.IsNullOrEmpty(CompanyId) ? new Uri(ODataWebService.BuildODataUrl()) : new Uri(ODataWebService.BuildODataUrl(CompanyId));
            NAV iWebService = new NAV(iUri)
            {
                Credentials = ODataWebService.CreateCredentials(iUri.ToString())
            };

            try
            {
                var iResults = (from Customer in iWebService.customers
                                orderby Customer.displayName
                                select new { Customer.number, Customer.displayName, Customer.id }).ToList().Distinct();

                return(Json(iResults, JsonRequestBehavior.AllowGet));
            }
            catch
            {
                return(Json(null, JsonRequestBehavior.AllowGet));
            }
        }
コード例 #5
0
    // Could not figure this out
    // Public Function GetSingleEntity(Of tEntity, TEntityCollection)(Optional ByVal pODataParms As String = "", Optional ByVal pByCompany As Boolean = True) As tEntity
    // Dim iEntityCollection = GetEntityCollection(Of TEntityCollection)(pODataParms, pByCompany)
    // ' Dim iEntity As tEntity = Nothing

    // If iEntityCollection IsNot Nothing Then
    // Dim iEntity = iEntityCollection.value(0)

    // End If

    // Return iEntity
    // End Function

    //public static string BuildODataUrl(string pCommand, bool pByCompany = true)
    //{
    //    string iUrl = "";

    //    if (pByCompany)
    //    {
    //        if (string.IsNullOrEmpty(vCompanyID))
    //        {
    //            var iCompany = GetEntityCollection<BCEntities.companies>(string.Format("$filter=name eq '{0}'", Settings.Default.CompanyName), false).value.FirstOrDefault();

    //            if (iCompany != null)
    //                vCompanyID = iCompany.id;
    //        }

    //        iUrl = Settings.Default.Transport + Settings.Default.Host + "/V2.0/" + Settings.Default.TenantId + "/" + Settings.Default.Environment + "/" + Settings.Default.apiVersion + string.Format("/companies({0})/", vCompanyID) + pCommand;
    //    }
    //    else
    //        iUrl = Settings.Default.Transport + Settings.Default.Host + "/V2.0/" + Settings.Default.TenantId + "/" + Settings.Default.Environment + "/" + Settings.Default.apiVersion + "/" + pCommand;

    //    return iUrl;
    //}

    public static TEntity SendRequest <TRequest, TEntity>(string pURL, string pMethod, TRequest pData, string pEtag = "")
    {
        HttpWebRequest iHttpRequest;
        Stream         iStream = null;
        TEntity        iResult;
        JsonSerializer iJsonSerializer = new JsonSerializer();
        string         iJsonData       = "";

        byte[] iBytes;

        iHttpRequest             = (HttpWebRequest)HttpWebRequest.Create(pURL);
        iHttpRequest.Host        = Settings.Default.Host;
        iHttpRequest.ContentType = "application/json";
        iHttpRequest.Accept      = "*/*";
        iHttpRequest.Method      = pMethod;
        iHttpRequest.Timeout     = 900000;

        var iTenantContext = ODataWebService.TenantContext();

        iHttpRequest.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(Encoding.ASCII.GetBytes(iTenantContext.UserName + ":" + iTenantContext.Password)));

        if (!string.IsNullOrEmpty(pEtag))
        {
            iHttpRequest.Headers.Add("If-Match", pEtag);
        }

        try
        {
            iStream   = iHttpRequest.GetRequestStream();
            iJsonData = JsonConvert.SerializeObject(pData, Formatting.None);
            iBytes    = ASCIIEncoding.ASCII.GetBytes(iJsonData);

            iStream.Write(iBytes, 0, iBytes.Length);
            iStream.Close();

            iStream = iHttpRequest.GetResponse().GetResponseStream();
            iResult = iJsonSerializer.Deserialize <TEntity>(new JsonTextReader(new StreamReader(iStream)));
        }
        catch (WebException ex)
        {
            iStream = ex.Response.GetResponseStream();
            iResult = iJsonSerializer.Deserialize <TEntity>(new JsonTextReader(new StreamReader(iStream)));
        }
        catch (Exception ex)
        {
            throw ex;
        }
        finally
        {
            if (iStream != null)
            {
                iStream.Close();
            }
        }

        return(iResult);
    }
コード例 #6
0
    public static TResult DeleteEntity <TEntity, TResult>(string pEntityId, string pEtag, bool pByCompany = true)
    {
        var iEntityUrl = typeof(TEntity).Name + "s";
        var iURl       = ODataWebService.BuildODataUrl(pByCompany);

        var iResult = SendRequest <TResult>(iURl, "DELETE", pEtag);

        return(iResult);
    }
コード例 #7
0
        public UserModel newUser()
        {
            var newUser = new b2c_ms_graph.UserModel();

            newUser.extension_39d2bd21d67b480891ffa985c6eb1398_TenantId  = ODataWebService.TenantId();
            newUser.extension_39d2bd21d67b480891ffa985c6eb1398_CompanyId = ODataWebService.CompanyId();
            newUser.extension_39d2bd21d67b480891ffa985c6eb1398_WebRole   = int.Parse(ODataWebService.WebRole()) + 1;
            newUser.forcePasswordChange   = false;
            newUser.DisplayAccountEnabled = true;

            return(newUser);
        }
コード例 #8
0
    public static TEntityCollection GetEntityCollection <TEntityCollection>(string pODataParms = "", bool pByCompany = true)
    {
        TEntityCollection iEntityCollection = default(TEntityCollection);
        var iURl = ODataWebService.BuildODataUrl(pByCompany) + typeof(TEntityCollection).Name;

        if (!string.IsNullOrEmpty(pODataParms))
        {
            iURl += "?" + pODataParms;
        }

        iEntityCollection = SendRequest <TEntityCollection>(iURl, "GET");

        return(iEntityCollection);
    }
コード例 #9
0
    public static TEntity CreateEntity <TEntity>(TEntity pDataFields, string pODataParms = "", bool pByCompany = true)
    {
        TEntity iEntity = default(TEntity);
        var     iURl    = ODataWebService.BuildODataUrl(pByCompany) + typeof(TEntity).Name + "s";

        if (!string.IsNullOrEmpty(pODataParms))
        {
            iURl += "?" + pODataParms;
        }

        iEntity = SendRequest <TEntity, TEntity>(iURl, "POST", pDataFields);

        return(iEntity);
    }
コード例 #10
0
    public static TEntity UpdateEntity <TEntity, TData>(string pEntityId, TData pModifiedFields, string pEtag, string pODataParms = "", bool pByCompany = true)
    {
        TEntity iEntity = default(TEntity);
        var     iURl    = ODataWebService.BuildODataUrl(pByCompany) + string.Format("{0}s({1})", typeof(TEntity).Name, pEntityId);

        if (!string.IsNullOrEmpty(pODataParms))
        {
            iURl += "?" + pODataParms;
        }

        iEntity = SendRequest <TData, TEntity>(iURl, "PATCH", pModifiedFields, pEtag);

        return(iEntity);
    }
コード例 #11
0
    // private static string vCompanyID;

    public static TEntity GetEntityById <TEntity>(string pEntityId, string pODataParms = "", bool pByCompany = true)
    {
        TEntity iEntity = default(TEntity);
        var     iURl    = ODataWebService.BuildODataUrl(pByCompany) + string.Format("{0}s({1})", typeof(TEntity).Name, pEntityId);

        if (!string.IsNullOrEmpty(pODataParms))
        {
            iURl += "?" + pODataParms;
        }

        iEntity = SendRequest <TEntity>(iURl, "GET");

        return(iEntity);
    }
コード例 #12
0
        public ActionResult Index()
        {
            var iCompanyId  = ClaimsPrincipal.Current.Claims.Where(w => w.Type == "extension_CompanyId").Select(s => s.Value).FirstOrDefault();
            Uri iUri        = new Uri(ODataWebService.BuildODataUrl(false));
            NAV iWebService = new NAV(iUri)
            {
                Credentials = ODataWebService.CreateCredentials(iUri.ToString())
            };

            var iCompanyName = (from Company in iWebService.companies
                                where Company.id == new Guid(iCompanyId)
                                select Company.displayName).FirstOrDefault();

            ViewBag.CompanyName = iCompanyName;

            return(View());
        }
コード例 #13
0
        public ActionResult Details(Guid id)
        {
            salesOrder iSalesOrder = null;
            Uri        iUri        = new Uri(ODataWebService.BuildODataUrl());
            NAV        iWebService = new NAV(iUri)
            {
                Credentials = ODataWebService.CreateCredentials(iUri.ToString())
            };

            try
            {
                iSalesOrder = (from salesOrder in iWebService.salesOrders where salesOrder.id == id select salesOrder).FirstOrDefault();
            }
            catch (Exception ex)
            {
                // return ex;
            }
            return(View(iSalesOrder));
        }
コード例 #14
0
        public ActionResult Details(Guid id)
        {
            item iItem       = null;
            Uri  iUri        = new Uri(ODataWebService.BuildODataUrl());
            NAV  iWebService = new NAV(iUri)
            {
                Credentials = ODataWebService.CreateCredentials(iUri.ToString())
            };

            try
            {
                iItem = (from Item in iWebService.items where Item.id == id select Item).FirstOrDefault();
            }
            catch (Exception ex)
            {
                // return ex;
            }
            return(View(iItem));
        }
コード例 #15
0
        public JsonResult GetItemsByNumber(string text)
        {
            object iResults = null;

            if (text.Length >= 3)
            {
                Uri iUri        = new Uri(ODataWebService.BuildODataUrl());
                NAV iWebService = new NAV(iUri)
                {
                    Credentials = ODataWebService.CreateCredentials(iUri.ToString())
                };

                iResults = (from Item in iWebService.items
                            orderby Item.number
                            where Item.number.Contains(text)
                            select new { itemNumber = Item.number, displayName = Item.displayName, id = Item.id }).ToList();
            }
            return(Json(iResults, JsonRequestBehavior.AllowGet));
        }
コード例 #16
0
        public IQueryable <salesInvoiceLine> GetSalesInvoiceLines(ODataQueryOptions queryOptions)
        {
            IQueryable <salesInvoiceLine> iQuery = null;
            Uri iUri        = new Uri(ODataWebService.BuildODataUrl());
            NAV iWebService = new NAV(iUri)
            {
                Credentials = ODataWebService.CreateCredentials(iUri.ToString())
            };

            try
            {
                iQuery = (IQueryable <salesInvoiceLine>)queryOptions.ApplyTo(iWebService.salesInvoiceLines);
            }
            catch (Exception ex)
            {
                // return ex;
            }

            return(iQuery);
        }
コード例 #17
0
        public ActionResult Subscriptions_Read([DataSourceRequest] DataSourceRequest request)
        {
            IQueryable <subscriptions> subscriptions = null;

            try
            {
                var iUri        = new Uri(ODataWebService.BuildODataUrl(false));
                var iWebService = new NAV(iUri)
                {
                    Credentials = ODataWebService.CreateCredentials(iUri.ToString())
                };

                subscriptions = (from subscription in iWebService.subscriptions select subscription);
            }
            catch (DataServiceRequestException ex)
            {
                ModelState.AddModelError("", ex.Message);
            }

            return(Json(subscriptions.ToDataSourceResult(request, ModelState)));
        }
コード例 #18
0
        public JsonResult GetCompanies()
        {
            Uri iUri        = new Uri(ODataWebService.BuildODataUrl(false));
            NAV iWebService = new NAV(iUri)
            {
                Credentials = ODataWebService.CreateCredentials(iUri.ToString())
            };

            try
            {
                var iResults = (from Company in iWebService.companies
                                orderby Company.displayName
                                select new { Company.displayName, Company.id }).ToList().Distinct();

                return(Json(iResults, JsonRequestBehavior.AllowGet));
            }
            catch
            {
                return(Json(null, JsonRequestBehavior.AllowGet));
            }
        }
コード例 #19
0
        public ActionResult CreateOrder(salesOrderModel salesOrderModel)
        {
            if (string.IsNullOrEmpty(salesOrderModel.customerNumber))
            {
                ModelState.AddModelError("", "Customer Number is required");
            }

            if (!ModelState.IsValid)
            {
                return(View(salesOrderModel));
            }

            var newOrder = new salesOrder();

            try
            {
                var iUri        = new Uri(ODataWebService.BuildODataUrl());
                var iWebService = new NAV(iUri)
                {
                    Credentials = ODataWebService.CreateCredentials(iUri.ToString())
                };

                newOrder.customerNumber         = salesOrderModel.customerNumber;
                newOrder.billToCustomerNumber   = salesOrderModel.customerNumber;
                newOrder.externalDocumentNumber = salesOrderModel.externalDocumentNumber;
                newOrder.orderDate             = salesOrderModel.orderDateTime;
                newOrder.requestedDeliveryDate = salesOrderModel.requestedDeliveryDateTime;
                newOrder.shipToContact         = salesOrderModel.shipToContact;
                newOrder.shipToName            = salesOrderModel.shipToName;
                newOrder.shippingPostalAddress = salesOrderModel.shippingPostalAddress;

                iWebService.AddTosalesOrders(newOrder);
                iWebService.SaveChanges();
            }
            catch (Exception ex)
            {
            }

            return(RedirectToAction("UpdateOrder", new { id = newOrder.id }));
        }
コード例 #20
0
        public ActionResult UpdateOrder(Guid id)
        {
            salesOrderModel salesOrderModel = new salesOrderModel();
            Uri             iUri            = new Uri(ODataWebService.BuildODataUrl());
            NAV             iWebService     = new NAV(iUri)
            {
                Credentials = ODataWebService.CreateCredentials(iUri.ToString())
            };

            try
            {
                var salesOrder = (from lsalesOrder in iWebService.salesOrders where lsalesOrder.id == id select lsalesOrder).FirstOrDefault();

                if (salesOrder.status != "Draft")
                {
                    ModelState.AddModelError("", "This order has been released and cannot be modified");
                }

                salesOrderModel.id                        = salesOrder.id;
                salesOrderModel.number                    = salesOrder.number;
                salesOrderModel.customerNumber            = salesOrder.customerNumber;
                salesOrderModel.billToCustomerNumber      = salesOrder.customerNumber;
                salesOrderModel.externalDocumentNumber    = salesOrder.externalDocumentNumber;
                salesOrderModel.orderDateTime             = DateTime.Parse(salesOrder.orderDate.ToString());
                salesOrderModel.requestedDeliveryDateTime = DateTime.Parse(salesOrder.requestedDeliveryDate.ToString());
                salesOrderModel.shipToContact             = salesOrder.shipToContact;
                salesOrderModel.shipToName                = salesOrder.shipToName;
                salesOrderModel.shippingPostalAddress     = salesOrder.shippingPostalAddress;
            }
            catch (Exception ex)
            {
            }


            return(View(salesOrderModel));
        }
コード例 #21
0
        public IQueryable <customer> GetCustomers(ODataQueryOptions queryOptions)
        {
            IQueryable <customer> iQuery = null;
            Uri iUri        = new Uri(ODataWebService.BuildODataUrl());
            NAV iWebService = new NAV(iUri)
            {
                Credentials = ODataWebService.CreateCredentials(iUri.ToString())
            };

            try
            {
                // iQuery = (IQueryable<customer>)queryOptions.ApplyTo(iWebService.customers);
                var Customer = (from Cust in iWebService.customers where Cust.number == "10000" select Cust).FirstOrDefault();

                var CreateDate = DateTime.Parse(Customer.lastModifiedDateTime.ToString());
            }
            catch (Exception ex)
            {
                // return ex;
            }


            return(iQuery);
        }
コード例 #22
0
        public ActionResult SalesOrderLine_Create([DataSourceRequest] DataSourceRequest request, salesOrderLineModel modelSalesOrderLine)
        {
            var iResult = new List <salesOrderLineModel>();

            if (string.IsNullOrEmpty(modelSalesOrderLine.itemNumber))
            {
                ModelState.AddModelError("", "Item nunber is required");
            }


            if (!ModelState.IsValid)
            {
                iResult.Add(modelSalesOrderLine);
            }
            else
            {
                try
                {
                    var documentId  = new Guid(modelSalesOrderLine.documentId);
                    var iUri        = new Uri(ODataWebService.BuildODataUrl());
                    var iWebService = new NAV(iUri)
                    {
                        Credentials = ODataWebService.CreateCredentials(iUri.ToString())
                    };
                    var iItem        = (from item in iWebService.items where item.number == modelSalesOrderLine.itemNumber select item).FirstOrDefault();
                    var lastSequence = (from salesOrderLine in iWebService.salesOrderLines
                                        orderby salesOrderLine.sequence descending
                                        where salesOrderLine.documentId == documentId
                                        select new  { id = salesOrderLine.id, lineNumber = salesOrderLine.sequence }).FirstOrDefault();
                    int lastLineNumber = 10000;

                    if (lastSequence != null)
                    {
                        lastLineNumber = (int)lastSequence.lineNumber + 10000;
                    }

                    if (iItem != null)
                    {
                        var newOrderLine = new Microsoft.NAV.salesOrderLine();
                        newOrderLine.id          = "";
                        newOrderLine.documentId  = documentId;
                        newOrderLine.sequence    = lastLineNumber;
                        newOrderLine.lineType    = "Item";
                        newOrderLine.itemId      = iItem.id;
                        newOrderLine.description = modelSalesOrderLine.itemDescription;
                        newOrderLine.quantity    = modelSalesOrderLine.quantity;
                        newOrderLine.unitPrice   = (decimal)modelSalesOrderLine.unitPrice;

                        iWebService.AddTosalesOrderLines(newOrderLine);
                        iWebService.SaveChanges();

                        iResult.Add(new salesOrderLineModel(newOrderLine));
                    }
                    else
                    {
                        ModelState.AddModelError("", "Invalid Item Number");
                        iResult.Add(modelSalesOrderLine);
                    }
                }
                catch (DataServiceRequestException ex)
                {
                    ModelState.AddModelError("", ex.Message);
                    iResult.Add(modelSalesOrderLine);
                }
            }

            return(Json(iResult.ToDataSourceResult(request, ModelState)));
        }
コード例 #23
0
        public async Task <ActionResult> CreateUser(b2c_ms_graph.UserModel userModel, FormCollection formCollection)
        {
            if (string.IsNullOrEmpty(userModel.newPassword))
            {
                ModelState.AddModelError("", "New Password is required.");
            }

            if (userModel.newPassword != userModel.confirmPassword)
            {
                ModelState.AddModelError("", "New Password and confirm password do not match.");
            }

            if (ModelState.IsValid)
            {
                try
                {
                    User newUser = new User();
                    IDictionary <string, object> extensionInstance = new Dictionary <string, object>();
                    extensionInstance.Add(B2cCustomAttributeHelper.GetCompleteAttributeName("WebRole"), int.Parse(ODataWebService.WebRole()) + 1);
                    extensionInstance.Add(B2cCustomAttributeHelper.GetCompleteAttributeName("TenantId"), ODataWebService.TenantId());
                    extensionInstance.Add(B2cCustomAttributeHelper.GetCompleteAttributeName("CompanyId"), userModel.extension_39d2bd21d67b480891ffa985c6eb1398_CompanyId);
                    extensionInstance.Add(B2cCustomAttributeHelper.GetCompleteAttributeName("CustomerNumber"), userModel.extension_39d2bd21d67b480891ffa985c6eb1398_CustomerNumber);
                    newUser.AdditionalData = extensionInstance;

                    newUser.DisplayName     = userModel.DisplayName;
                    newUser.AccountEnabled  = userModel.DisplayAccountEnabled;
                    newUser.PasswordProfile = new PasswordProfile
                    {
                        Password = userModel.newPassword,
                        ForceChangePasswordNextSignIn = userModel.forcePasswordChange
                    };

                    newUser.PasswordPolicies = "DisablePasswordExpiration";
                    newUser.Identities       = new List <ObjectIdentity>
                    {
                        new ObjectIdentity
                        {
                            SignInType       = "emailAddress",
                            Issuer           = "ICPCustomerPortal1.onmicrosoft.com",
                            IssuerAssignedId = userModel.DisplayEmailName
                        }
                    };

                    GraphServiceClient graphClient = GraphClient.CreateGraphClient();

                    await graphClient.Users
                    .Request()
                    .AddAsync(newUser);

                    return(RedirectToAction("Index"));
                }

                catch (Exception ex)
                {
                    ModelState.AddModelError(string.Empty, ex.Message);
                };
            }

            return(View(userModel));
        }